import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; import type { CodeModeRegistration } from "../tools/code-mode/tools.ts"; import type { CodexExtensionRuntime } from "./runtime.ts"; import type { SessionBeforeCompactEvent, SessionCompactFailedEvent, SessionCompactEvent } from "@earendil-works/pi-coding-agent"; export declare function createCodexCompactionLifecycle(pi: ExtensionAPI, runtime: CodexExtensionRuntime, codeMode: CodeModeRegistration, startManualNotesWindow: (ctx: ExtensionContext) => Promise, refreshNotebookStatus: (ctx: ExtensionContext) => Promise): { beforeCompact: (event: SessionBeforeCompactEvent, ctx: ExtensionContext) => Promise<{ cancel: true; } | { compaction: import("@earendil-works/pi-coding-agent").CompactionResult; } | { cancel: boolean; compaction?: never; } | { cancel?: never; compaction: import("@earendil-works/pi-coding-agent").CompactionResult; } | undefined>; failed: (event: SessionCompactFailedEvent, ctx: ExtensionContext) => Promise; compacted: (event: SessionCompactEvent, ctx: ExtensionContext) => Promise; };