import type { SessionEntry, SessionManager } from "@caupulican/pi-agent-core/node"; export type SessionSnapshotPayload = { version: 1; } & { [Key in ValueKey]: Value; }; export interface SessionSnapshotCodec { customType: string; valueKey: ValueKey; isValue(value: unknown): value is Value; clone(value: Value): Value; } export interface SessionBranchEntrySource { getBranch?: () => readonly SessionEntry[]; getEntries?: () => readonly SessionEntry[]; } type VersionOneSnapshotPayload = Record & { version: 1; }; /** Active branch when available; linear entry history only for narrow stores that expose no branch API. */ export declare function getActiveSessionBranchEntries(source: SessionBranchEntrySource): readonly SessionEntry[]; export declare function isVersionOneSessionSnapshotPayload(data: unknown): data is VersionOneSnapshotPayload; export declare function createSessionSnapshotPayload(codec: SessionSnapshotCodec, value: Value): SessionSnapshotPayload; export declare function appendSessionSnapshot(sessionManager: Pick, codec: SessionSnapshotCodec, value: Value): string; export declare function decodeSessionSnapshotPayload(data: unknown, codec: SessionSnapshotCodec): Value | undefined; export declare function getSessionSnapshots(entries: readonly SessionEntry[], codec: SessionSnapshotCodec): Value[]; export declare function getLatestSessionSnapshot(entries: readonly SessionEntry[], codec: SessionSnapshotCodec): Value | undefined; /** * Resolves the newest valid snapshot on the active branch. Malformed entries are skipped while * walking leaf to root so they cannot hide an older valid checkpoint. */ export declare function getLatestSessionSnapshotOnBranch(sessionManager: Pick, codec: SessionSnapshotCodec): Value | undefined; export {}; //# sourceMappingURL=session-snapshot.d.ts.map