export interface InteractiveActionsEditor {
    onEscape?: () => void;
    onCtrlD?: () => void;
    onFilePaste?: (filePath: string) => void;
    onPasteImage?: () => void;
    onAction(name: string, handler: () => void | Promise<void>): void;
    getText(): string;
}
export interface InteractiveActionsUi {
    onDebug?: () => void;
}
export interface InteractiveActionsHandlers {
    isLoading(): boolean;
    restoreQueuedMessagesToEditor(options?: {
        abort?: boolean;
    }): void;
    showTreeSelector(): void;
    handleCtrlC(): void;
    handleCtrlD(): void;
    handleCtrlZ(): void;
    cycleThinkingLevel(): void;
    toggleFastMode(): void;
    toggleAutoApprove(): void;
    toggleRuntimePermissionBypass(): Promise<void>;
    cycleModel(direction: 'forward' | 'backward'): Promise<void>;
    showModelSelector(): void;
    toggleToolOutputExpansion(): void;
    toggleThinkingBlockVisibility(): void;
    openExternalEditor(): void;
    handleFollowUp(): Promise<void>;
    handleDequeue(): void;
    handleClearCommand(): Promise<void>;
    showSessionSelector(): void;
    attachFile(filePath: string): void;
    handleClipboardImagePaste(): void;
    showAgentsSelector(): void;
    runDebugCommand(): void;
    cycleMode(): Promise<void>;
}
interface RegisterInteractiveActionsOptions {
    editor: InteractiveActionsEditor;
    ui: InteractiveActionsUi;
    handlers: InteractiveActionsHandlers;
    now?: () => number;
    doubleEscapeWindowMs?: number;
}
/** Wire editor and UI actions for the interactive shell, including double-escape handling. */
export declare function registerInteractiveActions(options: RegisterInteractiveActionsOptions): void;
export {};
//# sourceMappingURL=interactive-actions.d.ts.map