import type { ActionContext, ActionId } from "../../ui-core/actions/action-id.js"; import type { ActionRouter } from "../../ui-core/actions/action-router.js"; import type { FocusController } from "../../ui-core/controllers/focus-controller.js"; import type { CancelLadder } from "./cancel-ladder.js"; import type { DecodedEvent, KeyEvent, MouseEvent } from "./key-event.js"; export interface InputRouterDeps { readonly focus: FocusController; readonly router: ActionRouter; readonly ladder: CancelLadder; readonly onAction: (action: ActionId, chord: string, key: KeyEvent) => void; readonly onPanelKey: (key: KeyEvent, chord: string, context: ActionContext) => void; readonly onText: (text: string) => void; readonly onPaste: (text: string) => void; readonly onMouse: (event: MouseEvent) => void; readonly onToast: (text: string) => void; readonly closeOverlay: () => void; readonly dismissBlockingPrompt: () => boolean; readonly acceptsPaste: () => boolean; readonly acceptsText: () => boolean; readonly hasSelection: () => boolean; readonly contextLimitEditing?: (() => boolean) | undefined; readonly onContextLimitStart?: (() => void) | undefined; readonly onContextLimitKey?: ((key: KeyEvent, chord: string) => void) | undefined; readonly onContextLimitPaste?: ((text: string) => void) | undefined; } export declare class InputRouter { private readonly deps; constructor(deps: InputRouterDeps); handle(event: DecodedEvent): void; handleAll(events: readonly DecodedEvent[]): void; private routeKey; private dispatchOrPanel; }