import { type ChatShellCommandHandlers, type InteractiveShellCommandResult, type RunningChatShellCommand } from "./shell-command.js"; import type { Entry, SessionActivity } from "../types.js"; type AppShellControllerDeps = { runChatShellCommand(command: string, cwd: string, handlers: ChatShellCommandHandlers): RunningChatShellCommand; }; export type AppShellControllerHost = { readonly cwd: string; isRunning(): boolean; activeScopeKey(): string | undefined; addEntry(entry: Entry): void; touchEntry(entry: Entry): void; setStatus(status: string): void; setSessionActivity(activity: SessionActivity): void; restoreSessionStatus(): void; render(): void; scheduleRender(): void; }; export declare class AppShellController { private readonly host; private readonly deps; private activeRun; private renderTimer; constructor(host: AppShellControllerHost, deps?: AppShellControllerDeps); isRunning(): boolean; run(command: string): Promise; sendInput(text: string): boolean; interrupt(): boolean; dispose(): void; private appendOutput; private appendInputEcho; private finishEntry; private touchAndScheduleRender; private flushRender; private isScopeActive; } export {};