import type { ContextGuard } from '@j1nn0/agent-context-guard'; import type { ContextEvent, ExtensionAPI, ExtensionContext, SessionCompactEvent } from '@earendil-works/pi-coding-agent'; import type { LastVerification, RecoveryMode } from './types.js'; type ContextEventResult = { messages?: ContextEvent['messages']; }; interface LifecycleDependencies { readonly pi: ExtensionAPI; readonly getGuard: () => ContextGuard; readonly getRecoveryMode: () => RecoveryMode; /** * Whether recovery may re-inject one item. Verification still reports every * item honestly; this only decides what is worth putting back, so a * discovery someone retired or superseded stops returning after compaction. */ readonly isRecoverableItem: (itemId: string) => boolean; } export interface LifecycleController { clearPendingSnapshot(): void; resetForSession(): void; captureSnapshot(): void; handleCompaction(event: SessionCompactEvent, ctx: ExtensionContext): void; handleContext(event: ContextEvent, ctx: ExtensionContext): Promise; getLastVerification(): LastVerification | undefined; getLastUnverifiableCompactionId(): string | undefined; } export declare function createLifecycle(dependencies: LifecycleDependencies): LifecycleController; export {}; //# sourceMappingURL=lifecycle.d.ts.map