import type { DshRemoteNodePresentation } from './types.js'; export type DshRemoteJsonValue = null | boolean | number | string | DshRemoteJsonValue[] | { [key: string]: DshRemoteJsonValue; }; export interface DshRemoteSessionEvent { type: string; seq: number; time: number; data: DshRemoteJsonValue; sourceEventSeqs?: number[]; surfaceOp?: DshRemoteJsonValue; ignorable?: true; } export interface DshRemoteToolEventView { for: 'call' | 'result'; view: { [key: string]: DshRemoteJsonValue; }; } /** The public DSH replay unit used by both sessions.history and events.mux. */ export interface DshRemoteHistoryEntry { event: DshRemoteSessionEvent; view?: DshRemoteToolEventView; /** Realtime/read projection only. Backend canonical event storage strips it. */ presentation?: DshRemoteNodePresentation; } export declare function snapshotDshHistoryEntry(value: { event: unknown; view?: unknown; }): DshRemoteHistoryEntry; export declare function dshHistoryEntryUserRpcId(entry: DshRemoteHistoryEntry): string | undefined; /** Read projection only: canonical messages cover chunks, never tool calls/results. */ export declare function dshTranscriptHistoryEntries(entries: readonly DshRemoteHistoryEntry[]): DshRemoteHistoryEntry[]; //# sourceMappingURL=dsh-event-contract.d.ts.map