import type { UserRole } from '@/types/api';

export type CommandCategory = 'navigation' | 'settings' | 'action';

export interface CommandItem {
  id: string;
  title: string;
  description?: string;
  group: string;
  path: string;
  keywords: string[];
  category: CommandCategory;
  icon?: string;
  featureFlag?: string;
  requiredRoles?: UserRole[];
  /** For settings deep links — passed as navigate state */
  navigationState?: Record<string, unknown>;
}

export interface EntityResult {
  id: string;
  title: string;
  subtitle?: string;
  entityType: string;
  path: string;
  icon?: string;
  navigationState?: Record<string, unknown>;
}

export interface SearchResults {
  commands: CommandItem[];
  entities: EntityResult[];
  entitiesLoading: boolean;
}
