import { type Operation } from "../operations.js"; import type { SimulationState } from "../SimulationState.js"; import type { MaybeDraft } from "./types.js"; export type SimulationResult = [ MaybeDraft, ...MaybeDraft[] ]; export declare const produceImmutable: { | Promise = void>(base: T, mutate: (draft: import("mutative").Draft) => R, options?: import("mutative").Options | undefined): import("mutative/dist/interface.js").CreateResult; = void>(base: T, mutate: (draft: T) => R, options?: import("mutative").Options | undefined): import("mutative/dist/interface.js").CreateResult; = void>(mutate: (draft: import("mutative").Draft, ...args: P) => R, options?: import("mutative").Options | undefined): (base: T, ...args: P) => import("mutative/dist/interface.js").CreateResult; (base: T, options?: import("mutative").Options | undefined): [import("mutative").Draft, () => import("mutative/dist/interface.js").Result]; }; export declare const handleOperation: (operation: Operation, data: MaybeDraft, index?: number) => MaybeDraft; export declare function handleOperations(operations: Operation[], startData: MaybeDraft): SimulationResult; export declare function handleOperations(operations: O[], startData: MaybeDraft, customOperationHandle: (operation: O, data: MaybeDraft, index: number) => MaybeDraft): SimulationResult; export declare const simulateOperation: (operation: Operation, data: MaybeDraft, index?: number) => MaybeDraft; export declare const simulateOperations: (operations: Operation[], startData: MaybeDraft) => SimulationResult;