import { type AutocompleteProvider, type SlashCommand } from "@gajae-code/tui"; import { type ComposerSubmissionOptions, type InteractiveModeContext } from "../../modes/types"; import { loadPastedImageBatch } from "../../utils/pasted-image-loading"; import { ActionRegistry } from "../action-registry"; import type { PasteTextContext } from "../components/custom-editor"; export declare const INTERACTIVE_ABORT_CLEANUP_TIMEOUT_MS = 5000; export declare const BACKGROUND_FOLD_DOUBLE_PRESS_MS = 750; interface InputControllerDependencies { loadPastedImageBatch?: typeof loadPastedImageBatch; } export declare class InputController { #private; private ctx; readonly actionRegistry: ActionRegistry; constructor(ctx: InteractiveModeContext, dependencies?: InputControllerDependencies); setupKeyHandlers(): void; setupEditorSubmitHandler(): void; submitText(text: string, composer: ComposerSubmissionOptions): Promise; handleCtrlC(): void; handleCtrlD(): void; handleCtrlZ(): void; toggleQueuePane(): void; sendNow(): Promise; handleDequeue(): void; /** Send editor text as a follow-up message (queued behind current stream). */ handleFollowUp(): Promise; /** Send editor text explicitly as a queued next-turn message. */ handleQueueSubmit(): Promise; restoreLatestQueuedMessageToEditor(): number; restoreQueuedMessagesToEditor(options?: { abort?: boolean; currentText?: string; }): number; handleBackgroundCommand(): void; handleForegroundToolBackgroundFold(): boolean; handleTextPaste(text: string, context: PasteTextContext): boolean | Promise; handleImagePaste(): Promise; /** * Explicit "Paste text from configured clipboard" action (P3-b v1). Only * meaningful when `clipboard.transport` is `ssh` — reads via `pbpaste` on * the configured host and inserts the result at the cursor. No default * key (command palette only), so it never collides with the platform * image-paste binding. Explicit ssh failures are surfaced verbatim and * never fall back to native/OSC52 or leave stale text inserted. */ handlePasteText(): Promise; createAutocompleteProvider(commands: SlashCommand[], basePath: string): AutocompleteProvider; /** Copy the current editor line to the system clipboard. */ handleCopyCurrentLine(): void; /** Copy current prompt text to system clipboard. */ handleCopyPrompt(): void; openCommandPalette(): void; cycleThinkingLevel(): void; cycleRoleModel(options?: { temporary?: boolean; }): Promise; toggleToolOutputExpansion(): void; scrollTmuxToPreviousUserInput(): void; setToolsExpanded(expanded: boolean): void; toggleThinkingBlockVisibility(): void; openExternalEditor(): Promise; registerExtensionShortcuts(): void; } export {};