import type { InputEditor } from "../../input-editor.js"; import type { AgentSessionRuntime } from "@earendil-works/pi-coding-agent"; import type { AppPopupActionController } from "../popup/popup-action-controller.js"; import type { AppPopupMenuController } from "../popup/popup-menu-controller.js"; import type { AppQueuedMessageController } from "../session/queued-message-controller.js"; import type { AppRequestHistory } from "../session/request-history.js"; import { type InteractiveShellCommandResult } from "../commands/shell-command.js"; import type { Entry, SessionActivity } from "../types.js"; export type AppInputActionControllerHost = { runtime(): AgentSessionRuntime | undefined; inputScopeKey?(): string | undefined; isDraftTabActive?(): boolean; materializeDraftSession?(): Promise; isRunning(): boolean; isSessionSwitching(): boolean; inputEditor(): InputEditor; requestHistory(): AppRequestHistory; clearPersistedInputDraft(): Promise; setStatus(status: string): void; setSessionStatus(session: AgentSessionRuntime["session"] | undefined): void; setSessionActivity(activity: SessionActivity): void; addEntry(entry: Entry): void; addSessionAbortedEntry(): void; emitSessionAborted(): void; showToast(message: string, kind: "success" | "error" | "warning" | "info"): void; dismissActiveDialog?(): boolean; stopVoiceInput(): Promise; isShellCommandRunning(): boolean; runChatShellCommand(command: string): Promise; sendShellInput(text: string): boolean; interruptShellCommand(): boolean; runInteractiveShellCommand(command: string): Promise; stop(): Promise; render(): void; }; export declare class AppInputActionController { private readonly host; private readonly popupMenus; private readonly popupActions; private readonly queuedMessages; private readonly abortsInFlight; constructor(host: AppInputActionControllerHost, popupMenus: AppPopupMenuController, popupActions: AppPopupActionController, queuedMessages: AppQueuedMessageController); handleEnter(): void; queueInputFromEditor(): Promise; handleInterrupt(): Promise; handleEscape(): Promise; private closeActiveGlobalUi; private abortStreamingSession; private restoreSessionState; private sessionActivity; private submitInput; private submitShellInput; private submitShellCommand; private isInputScopeActive; private isSessionScopeActive; }