import { type InputCoreState } from './input-core.js'; import type { AutocompleteState } from './input/autocomplete-state.js'; import type { IHistoryRing } from './input/types.js'; import type { ImageAttachment } from './input/attachments.js'; import type { CompositorInputMode, KeyInfo, PickerController, SubmissionPayload } from './terminal-compositor.types.js'; export interface KeyDispatchHost { repaint(): void; scheduleRepaint(): void; clearScreen(): void; applyEdit(next: InputCoreState): boolean; updateAutocomplete(): void; updateGhost(): void; dismissPromptGhost(): boolean; applyDropdownSelection(): boolean; applyGhostAccept(): boolean; applyGhostWordAccept(): boolean; readonly armed: boolean; input: InputCoreState; queued: boolean; pendingSubmissions: SubmissionPayload[]; readonly inputMode: CompositorInputMode; readonly pickerController: PickerController | null; pasting: boolean; pasteStartBufferLen: number; pasteStartCursor: number; readonly pasteRegistry: Map; clipboardInFlight: boolean; clipboardFailureMsg: string | null; attachments: ImageAttachment[]; readonly autocompleteState?: AutocompleteState; readonly activeGhost: string | null; readonly history?: IHistoryRing; softStopped: boolean; lastIdleEscAt: number; postEscCoalesce: boolean; postEscPayload: SubmissionPayload | null; canceled: boolean; backgrounded: boolean; paused: boolean; readonly onCancel?: () => void; readonly onSoftStop?: () => void; readonly onBackground?: () => void; readonly onIdleEscape?: () => void; readonly onRewindRequest?: () => void; readonly onPauseInterrupt?: () => void; readonly onShiftTab?: () => void; readonly onTaskView?: () => boolean; readonly onOpenEditor?: () => void; readonly onSubmit?: (payload: SubmissionPayload) => void; } export declare function applyEdit(self: KeyDispatchHost, next: InputCoreState): boolean; export declare function dispatchKey(self: KeyDispatchHost, char: string | undefined, key: KeyInfo): void;