/** * useCommands Hook * Handles slash commands for the CLI * Includes model switching, compact mode, session management, stats, and memory */ import { type MutableRefObject } from 'react'; export interface CommandResult { handled: boolean; output?: string; action?: 'exit' | 'clear' | 'toggle-raw' | 'toggle-debug' | 'toggle-compact' | 'toggle-gateway' | 'toggle-heartbeat'; } export interface BackgroundServiceStatus { gatewayOnline: boolean; gatewayCompleted: number; heartbeatActive: boolean; heartbeatLastPoll?: string; heartbeatTriggered: number; } /** Session-level statistics exposed to commands and UI */ export interface SessionStats { startedAt: number; messageCount: number; toolCallCount: number; filesModified: Set; tokensEstimate: number; } export interface UseCommandsOptions { mcpServers?: Array<{ name: string; tools?: Array<{ name: string; }>; }>; conversationId?: string; serviceStatusRef?: MutableRefObject; } export interface UseCommandsReturn { rawMode: boolean; debugMode: boolean; compactMode: boolean; heartbeatMode: boolean; sessionStats: SessionStats; handleCommand: (input: string) => CommandResult; getHelp: () => string; getMcpStatus: () => string; getCompletions: (partial: string) => string[]; trackToolCall: (toolName: string, filePath?: string) => void; trackTokens: (count: number) => void; } export declare function useCommands(options?: UseCommandsOptions): UseCommandsReturn; //# sourceMappingURL=useCommands.d.ts.map