/** * One Pi session line reduced to what settings restoration reads. Message * content is dropped here, line by line, so conversation text never reaches * the settings snapshot or stays in memory. */ export type PiSettingsLine = { readonly kind: "header"; readonly cwd: string; readonly sessionId: string; readonly version: number; } | { readonly kind: "entry"; readonly id: string | null; readonly parentId: string | null; readonly model?: { readonly provider: string; readonly model: string; }; readonly effort?: string; }; /** Null is a line hcn cannot trust; the whole read is then unavailable. */ export declare function parsePiSettingsLine(value: unknown): PiSettingsLine | null; export interface PiSessionSettings { readonly cwd: string; readonly effort: string; /** The entries that set the values, for the fingerprint. */ readonly effortEntry: string | null; readonly model: string; readonly modelEntry: string; readonly provider: string; readonly sessionId: string; } /** * Pi's own restoration rule (Pi 0.87.1, `dist/core/session-manager.js`). * `_buildIndex` makes the last non-header entry the leaf; `buildSessionPath` * walks `parentId` links from it and stops at a missing parent; * `getSessionContextSettings` lets each `model_change` and assistant message * replace the model, and each `thinking_level_change` replace the thinking * level, which starts at `off`. A version 1 file has no ids: Pi's migration * chains its entries in file order. */ export declare function piSessionSettings(lines: readonly PiSettingsLine[]): PiSessionSettings | "session-unavailable" | "settings-unavailable"; //# sourceMappingURL=pi-native-settings.d.ts.map