import { Effect } from 'effect'; import type { Tool } from '../tool/tool'; import type { EvalCheckpointArtifact, EvaluationArtifact } from './artifact'; import { TraceStorageService, type TraceStorageApi } from './storage'; export type ReplayMode = 'retry' | 'skip' | 'restart'; export interface ReplayOptions { fromCheckpoint?: number; mode?: ReplayMode; } export interface ReplayDependencies { storage: Pick; runtime: ReplayRuntimeAdapter; configPath?: string; } export interface ReplayRuntimeAdapter { initializeFromConfig: (configPath: string, options: { toolExecutors?: Map; }) => Promise; resumeFromCheckpoint: (input: ReplayResumeInput) => Effect.Effect | Promise | unknown; } export interface ReplayResumeInput { runId: string; pipelineId: string; mode: ReplayMode; checkpoint: EvalCheckpointArtifact; contextSnapshot: Record; toolExecutors: Map; } export interface ReplayResult { traceId: string; runId: string; checkpointStep: number; mode: ReplayMode; output: unknown; outputHash: string; } export declare function deterministicReplayHash(value: unknown): string; export declare function runEffectWithTestClock(effect: Effect.Effect, adjustmentsMs: ReadonlyArray): Promise; export declare function withTestClock(effect: Effect.Effect, adjustmentsMs: ReadonlyArray): Effect.Effect; export declare function deriveClockAdjustmentsFromOffsets(offsetsMs: ReadonlyArray, extraMs?: number): ReadonlyArray; export declare class MissingToolMockResponseError extends Error { constructor(toolId: string, callOrdinal: number); } export declare class ToolMockSignatureMismatchError extends Error { constructor(toolId: string, callOrdinal: number); } export interface ReplayToolMocks { readonly toolExecutors: Map; assertConsumed: () => void; } export declare function buildReplayToolMocks(artifact: EvaluationArtifact): ReplayToolMocks; export declare class ReplayTraceNotFoundError extends Error { constructor(traceId: string); } export declare class ReplayCheckpointNotFoundError extends Error { constructor(requestedCheckpoint: number, availableCheckpoints: ReadonlyArray); } export declare function createReplayOrchestrator(deps: ReplayDependencies): { replay: (traceId: string, options?: ReplayOptions) => Promise; }; export declare const replay: (traceId: string, options: ReplayOptions, dependencies: ReplayDependencies) => Promise; export declare const replayWithStorage: (traceId: string, options: ReplayOptions, runtime: ReplayRuntimeAdapter, configPath: string) => Effect.Effect; //# sourceMappingURL=replay.d.ts.map