import { SerializableEngine } from "jm-castle-ac-dc-types"; import { EngineContext } from "../EngineContext.mjs"; import { Datastate, Engine, EngineContextConsumer } from "../Types.mjs"; import { DatastatePart } from "./Types.mjs"; export interface RunPartsResponse { duration: number; errors?: string[]; } export interface DatastateEngineProps { parts: DatastatePart[]; engineId: string; } export declare class DatastateEngine implements Engine, Datastate, EngineContextConsumer { constructor(props: DatastateEngineProps); private engineId; private currentState; private lastStartedAt; private lastLapEndAt; private running; private shouldRun; private lap; private durations; private errors; private parts; private consumers; getCurrentState: () => Promise; onLapEnd: (consumer: EngineContextConsumer) => void; removeOnLapEnd: (consumer: EngineContextConsumer) => void; addPart: (...parts: DatastatePart[]) => void; private runParts; private lapStart; private lapEnd; private run; onContextChange: (context: EngineContext) => Promise; private waitAndCheckRunning; start: () => Promise; stop: () => Promise; status: () => Promise<{ lastStartedAt: number; lastLapEndAt: number; running: boolean; duration: { laps: number; consumed: { total: number; lapStart: number; lapEnd: number; }; }; errors: { lap: number; errors: string[]; }[]; }>; settings: () => Promise<{ lapDuration: number; }>; getSerializable: () => Promise; }