import { Terminal } from 'lucide-react'; import type { PluginCommandListEntry } from './api-client/plugins'; export interface Command { id: string; label: string; description: string | ((state: CommandState) => string); icon: typeof Terminal; kind: CommandKind; } export type CommandKind = 'app' | 'runtime' | 'git' | 'session' | 'danger' | 'recipe' | 'plugin'; export declare const COMMAND_KIND_LABELS: Record; export declare const COMMAND_KIND_STYLES: Record; export interface CommandState { vimModeEnabled: boolean; reasoningEnabled: boolean; followToolActivity: boolean; isShared?: boolean; } export declare const COMMANDS: Command[]; export declare function getCommandDescription(cmd: Command, state: CommandState): string; export declare function findExactCommand(input: string): Command | undefined; export declare function shouldSendSlashCommandAsMessage(commandId: string): boolean; export declare function getCommandLabel(commandId: string): string | undefined; export declare function getCommandKind(commandId: string): CommandKind | undefined; export declare function getRecipeCommandName(commandId: string): string | undefined; export declare function parseSlashCommandName(input: string): string | undefined; export declare function getSlashCommandKind(input: string, recipeNames?: string[]): CommandKind | undefined; export declare function filterCommands(query: string, state: CommandState, extraCommands?: Command[]): Command[]; export declare const PLUGIN_COMMAND_ICON: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export type PluginCommandStage = { kind: 'root'; query: string; } | { kind: 'namespace'; namespace: string; query: string; } | { kind: 'params'; namespace: string; command: string; query: string; }; export interface PluginNamespace { name: string; description?: string; } /** * Build the unique plugin namespaces from the flat command list, keeping the * first description seen for each namespace. */ export declare function getPluginNamespaces(commands: PluginCommandListEntry[]): PluginNamespace[]; /** * Convert plugin namespaces into slash-root command rows. */ export declare function pluginNamespaceCommands(namespaces: PluginNamespace[]): Command[]; /** * Convert a plugin's commands into namespace-stage command rows. */ export declare function pluginCommandRows(namespace: string, commands: PluginCommandListEntry[]): Command[]; /** * Convert a plugin command's parameters into params-stage command rows. */ export declare function pluginParameterRows(entry: PluginCommandListEntry): Command[]; /** * Determine the active plugin autocomplete stage from the raw input value and * the set of known plugin namespaces. Returns undefined when the input is not a * slash command at all. */ export declare function getPluginCommandStage(value: string, namespaces: string[]): PluginCommandStage | undefined; export declare function findPluginCommandEntry(commands: PluginCommandListEntry[], namespace: string, command: string): PluginCommandListEntry | undefined; /** * Names of required parameters not present as `--name` flags in the raw input. */ export declare function getMissingRequiredParams(entry: PluginCommandListEntry, value: string): string[]; //# sourceMappingURL=commands.d.ts.map