import { ChatEntry } from "../agent/codebuddy-agent.js";
import { CodeBuddyClient } from "../codebuddy/client.js";
import type { CommandHandlerResult } from "./handlers/index.js";
export type { CommandHandlerResult };
/**
 * Enhanced Command Handler.
 *
 * Processes special command tokens (starting with `__`) that are mapped from
 * slash commands. This class acts as the central dispatcher, delegating
 * specific command logic to modular handlers in `src/commands/handlers/`.
 *
 * It maintains references to conversation history and the CodeBuddy client
 * to enable context-aware command execution.
 */
export declare class EnhancedCommandHandler {
    private conversationHistory;
    private codebuddyClient;
    /**
     * Sets the conversation history for context-aware commands (e.g., save, compact).
     *
     * @param history - Array of chat entries.
     */
    setConversationHistory(history: ChatEntry[]): void;
    /**
     * Sets the CodeBuddy client instance for commands that require client access
     * (e.g., ai-test, certain agent commands).
     *
     * @param client - The CodeBuddy client instance.
     */
    setCodeBuddyClient(client: CodeBuddyClient): void;
    /**
     * Handles a special command token.
     * Dispatches the command to the appropriate handler function.
     *
     * @param token - The command token (e.g., `__HELP__`, `__YOLO_MODE__`).
     * @param args - Arguments passed to the command.
     * @param _fullInput - The full input string (unused in most cases but available).
     * @returns A promise resolving to the command result, which may include
     *          a message to display or instruction to pass to the AI.
     */
    handleCommand(token: string, args: string[], _fullInput: string): Promise<CommandHandlerResult>;
}
/**
 * Gets the singleton instance of EnhancedCommandHandler.
 *
 * @returns The singleton instance.
 */
export declare function getEnhancedCommandHandler(): EnhancedCommandHandler;
/**
 * Resets the singleton instance of EnhancedCommandHandler.
 * Primarily used for testing.
 */
export declare function resetEnhancedCommandHandler(): void;
