import { CAELRecorder } from './CAELRecorder'; import { type SimSolver } from './SimSolver'; import { type ContractConfig, type SimulationProvenance } from './SimulationContract'; import { type CAELTrace } from './CAELTrace'; export type CAELSolverFactory = (config: Record) => SimSolver; export interface ForkAlternative { id: string; apply: (recorder: CAELRecorder, branchIndex: number) => void | Promise; metadata?: Record; } export interface ForkBranchResult { id: string; completed: boolean; score: number; provenance: SimulationProvenance; traceJSONL: string; error?: string; } export interface ForkAndChooseResult { winnerId: string | null; branches: ForkBranchResult[]; } export interface DreamConfig { episodes: number; steps: number; dt: number; fields: string[]; perturbationPercent: number; seed: number; contractConfigOverride?: ContractConfig; } export interface DreamEpisodeResult { episode: number; completed: boolean; perturbations: Array<{ field: string; before: number; after: number; }>; provenance: SimulationProvenance; traceJSONL: string; error?: string; } export interface DreamResult { wakingRunId: string; seed: number; episodes: DreamEpisodeResult[]; } /** Seeded deterministic PRNG for reproducible dream perturbations. */ export declare function mulberry32(seed: number): () => number; export declare function forkTrace(trace: string | CAELTrace, index: number, solverFactory: CAELSolverFactory): Promise; export declare function forkAndChoose(trace: string | CAELTrace, index: number, alternatives: ForkAlternative[], steps: number, dt: number, solverFactory: CAELSolverFactory, evaluator: (recorder: CAELRecorder) => number | Promise): Promise; export declare function dream(wakingJSONL: string, dreamConfig: DreamConfig, solverFactory: CAELSolverFactory): Promise; //# sourceMappingURL=CAELForkDream.d.ts.map