import type { ExtensionUIContext } from "../../core/extensions/index.js"; import type { IsolatedInteractiveRuntime } from "./isolated-runtime.js"; /** * Host-side half of the engine session picker channel. * * Mounts a REAL `SessionSelectorComponent` in the terminal host when the engine * child opens a picker, so arrow-key navigation, search, and repaints are * zero-IPC (unlike remote-rendered `ctx.ui.custom` components, which round-trip * every keypress). Only semantic events cross the protocol: the child pushes * open/update/error/close, the host sends select/cancel/delete. Deletion is * child-owned — the host never removes a row locally; it waits for the child's * `update` (row removed) or `error` reply. */ export declare class SessionPickerHostController { private readonly mounted; private readonly unsubscribe; private readonly unsubscribeGenerationEnded; private readonly runtime; private readonly ui; constructor(runtime: IsolatedInteractiveRuntime, ui: ExtensionUIContext); dispose(): void; private handleMessage; private open; private disposeAll; } //# sourceMappingURL=session-picker-host.d.ts.map