import { type ExtensionAPI, type ExtensionContext } from "@earendil-works/pi-coding-agent"; import type { CodeModeProxyProviderRegistration } from "../providers/code-mode-proxy-provider.ts"; import type { CodeModeRegistration } from "../tools/code-mode/tools.ts"; import type { CodexExtensionRuntime } from "./runtime.ts"; import type { CodexToolRegistration } from "./tools.ts"; import type { CodexUiController } from "./ui.ts"; import type { SessionStartEvent, ModelSelectEvent, SessionTreeEvent, SessionShutdownEvent } from "@earendil-works/pi-coding-agent"; export declare function createCodexSessionLifecycle(pi: ExtensionAPI, runtime: CodexExtensionRuntime, tools: CodexToolRegistration, ui: CodexUiController, codeMode: CodeModeRegistration, proxyProvider: CodeModeProxyProviderRegistration, modelSelected: (ctx: ExtensionContext) => void): { start: (event: SessionStartEvent, ctx: ExtensionContext) => Promise; modelSelected: (_event: ModelSelectEvent, ctx: ExtensionContext) => Promise; tree: (_event: SessionTreeEvent, ctx: ExtensionContext) => Promise; shutdown: (_event: SessionShutdownEvent, ctx: ExtensionContext) => Promise; activate: (ctx: ExtensionContext) => void; flushToolRefresh: (ctx: ExtensionContext) => void; }; export declare function prepareCodeModeHost(codeMode: CodeModeRegistration, ctx: ExtensionContext): void;