import type { KeybindingsManager, TUI } from '@earendil-works/pi-tui';
import type { ChatLog } from './components/chat-log.js';
import type { StreamAssembler } from './stream-assembler.js';
import type { TuiState } from './tui-types.js';
interface SlashCommandDef {
    name: string;
    description: string;
}
export type TuiExtensionSlashCommandEntry = SlashCommandDef & {
    handler: (args: string) => void | Promise<void>;
};
export declare function getSlashCommands(_isLocal: boolean): SlashCommandDef[];
export declare function formatTuiHelpText(isLocal: boolean): string;
export type CommandHandlerDeps = {
    state: TuiState;
    chatLog: ChatLog;
    tui: TUI;
    assembler: StreamAssembler;
    isLocalMode: boolean;
    abortActive: () => Promise<void>;
    sendMessage: (text: string) => void;
    requestExit: () => void;
    updateFooter: () => void;
    keybindings: KeybindingsManager;
    uiOverlays?: {
        openSessionPicker: () => void;
        openScopedModels: () => void;
        openSettings: () => void;
        reloadKeybindings: () => void;
    };
    runCompaction?: () => void | Promise<void>;
    extensionSlashCommands?: TuiExtensionSlashCommandEntry[];
    currentAgentId?: string;
    setSession?: (rawKey: string) => Promise<void>;
    resetSession?: () => Promise<void>;
};
export declare function createTuiCommandHandler(deps: CommandHandlerDeps): (input: string) => void;
export {};
