import type { JsonRecord } from "../storage/types"; import { type StateCacheSnapshot } from "../runtime/replay/stateCache"; import { type ClockSequenceInput, type DeterministicUlidHandle, type DeterministicUlidOptions, type FixedClockHandle, type FixedClockOptions } from "./deterministicProviders"; type MaybePromise = T | Promise; export interface SnapshotJournalEntry { seq: number; ulid: string; recordedAt: string; type: string; data: JsonRecord; } export interface SnapshotStateSummary { savedAt: string; stateVersion: number; journalHead: StateCacheSnapshot["journalHead"]; pendingEffectsByKind: StateCacheSnapshot["pendingEffectsByKind"]; effectsByInvocation: StateCacheSnapshot["effectsByInvocation"]; rebuildReason: StateCacheSnapshot["rebuildReason"]; } export interface DeterministicRunSnapshot { journal: SnapshotJournalEntry[]; state: SnapshotStateSummary | null; } export interface TempDeterministicRun { runDir: string; cleanup(): Promise; restore(): void; } export interface TempDeterministicRunOptions { processSource: string; inputs?: unknown; runId?: string; request?: string; clock?: ClockSequenceInput; ulids?: readonly string[]; } export { installDeterministicUlids, installFixedClock, } from "./deterministicProviders"; export type { ClockSequenceInput, DeterministicUlidHandle, DeterministicUlidOptions, FixedClockHandle, FixedClockOptions, } from "./deterministicProviders"; export interface DeterministicRunHarnessOptions { processPath?: string; processSource?: string; inputs?: unknown; runId?: string; request?: string; exportName?: string; clock?: FixedClockOptions; ulids?: DeterministicUlidOptions; } export interface DeterministicRunHarness { runId: string; runDir: string; runsRoot: string; clock: FixedClockHandle; ulids: DeterministicUlidHandle; cleanup(): Promise; } export declare function withDeterministicIds(sequence: readonly string[], fn: () => MaybePromise): Promise; export declare function withFixedClock(sequenceOrValue: ClockSequenceInput, fn: () => MaybePromise): Promise; export declare function createTempDeterministicRun(options: TempDeterministicRunOptions): Promise; export declare function snapshotRunState(runDir: string): Promise; export declare function createDeterministicRunHarness(options: DeterministicRunHarnessOptions): Promise; //# sourceMappingURL=deterministic.d.ts.map