import { SessionManager } from '@earendil-works/pi-coding-agent'; export interface SeededSessionInput { sessionId: string; sessionDir: string; cwd: string; parentSession?: string; messages: readonly unknown[]; } export interface PiSessionHost { createSeededSession(input: SeededSessionInput): Promise; readContext(sessionFile: string, cwd: string, expectedSessionId: string): Promise<{ entries: readonly unknown[]; messages: readonly unknown[]; }>; readMessages(sessionFile: string, cwd: string, expectedSessionId: string): Promise; inspectSession(sessionFile: string): Promise; listSessions(): Promise; forkSession(input: ForkSessionInput): Promise; } export interface PiSessionInfo { sessionId: string; sessionFile: string; cwd: string; parentSession?: string; name?: string; model?: { provider: string; modelId: string; }; thinking: string; entries: readonly unknown[]; messages: readonly unknown[]; contentHash: string; } export interface PiSessionChoice { sessionFile: string; sessionId: string; cwd: string; name?: string; modifiedAtMs: number; messageCount: number; firstMessage: string; } export interface ForkSessionInput { sourceFile: string; targetCwd: string; targetSessionDir?: string; sessionId: string; operationId: string; kind: 'detach' | 'adopt'; contextNote: string; destinationName: string; } type PiSessionMessage = Parameters[0]; export declare function isPiSessionMessage(value: unknown): value is PiSessionMessage; /** Estimate context using the same public message accounting Pi uses for compaction. */ export declare function estimatePiSessionMessages(messages: readonly unknown[]): number; /** Lazy supported Pi API adapter; no Pi runtime object is retained across extension replacement. */ export declare function createPiSessionHost(): PiSessionHost; export {};