import { StateDatabase } from "./database.js"; import { type JsonValue } from "./json.js"; export declare const VIEWER_DELTA_RETENTION = 256; export declare const VIEWER_PAGE_SIZE = 256; export type ViewerTargetType = "summary" | "graph" | "replay" | "timeline" | "conversation" | "inspector"; export type ViewerPatchOperation = { op: "add" | "replace"; path: string; value: JsonValue; } | { op: "remove"; path: string; } | { op: "append"; path: string; value: JsonValue[]; }; export type ViewerDeltaDraft = { targetType: ViewerTargetType; targetKey?: string; patch?: ViewerPatchOperation[]; }; export type ViewerTailItem = JsonValue; export type ViewerDeltaRecord = { runId: string; presentationRevision: number; deltaIndex: number; targetType: ViewerTargetType; targetKey: string; patch: ViewerPatchOperation[]; recordedAt: number; }; export type ViewerCursorResult = { kind: "deltas"; currentRevision: number; retainedFromRevision: number; deltas: ViewerDeltaRecord[]; } | { kind: "snapshot_required"; currentRevision: number; retainedFromRevision: number; }; export declare function initializeViewerRun(state: StateDatabase, runId: string, now: number): number; export declare function recordViewerDeltas(state: StateDatabase, runId: string, drafts: readonly ViewerDeltaDraft[], now?: number): number; export declare function viewerTailPatch(oldTotal: number, items: readonly ViewerTailItem[]): ViewerPatchOperation[]; export declare function readViewerDeltas(state: StateDatabase, runId: string, afterRevision: number): ViewerCursorResult;