import { SerializableEngine } from "jm-castle-ac-dc-types"; import { Datacollector, Engine, EngineContextConsumer } from "../Types.mjs"; import { DatacollectorPart } from "./Types.mjs"; export interface RunPartsResponse { duration: number; errors?: string[]; } export interface DatacollectorEngineProps { lapDuration: number; onEvent?: boolean; engineId: string; } export declare class DatacollectorEngine implements Engine, Datacollector { constructor(props: DatacollectorEngineProps); private engineId; private lastStartedAt; private lastLapEndAt; private props; private running; private shouldRun; private lap; private durations; private errors; private parts; private consumers; onLapStart: (consumer: EngineContextConsumer) => void; onLapEnd: (consumer: EngineContextConsumer) => void; addPart: (...parts: DatacollectorPart[]) => void; private runParts; /** Wait until the delay is over or when this should stop. */ private waitForNextLap; private lapStart; private lapEnd; private run; private runOnEvent; 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; }