import { TaskModel } from "./models/TaskModel"; import { Repo } from "../repository/Repository"; import { TaskEventModel } from "./models/TaskEventModel"; import { TaskHandlerRegistry } from "./TaskHandlerRegistry"; import { TaskEventBus } from "./TaskEventBus"; import { Adapter, ContextOf } from "../persistence/index"; import { AbsContextual, MaybeContextualArg } from "../utils/ContextualLoggedClass"; export type TaskEngineConfig> = { adapter: A; bus: TaskEventBus; registry: TaskHandlerRegistry; workerId: string; concurrency: number; leaseMs: number; pollMsIdle: number; pollMsBusy: number; logTailMax: number; streamBufferSize: number; maxLoggingBuffer: number; loggingBufferTruncation: number; }; export declare const DefaultTaskEngineConfig: TaskEngineConfig; export declare class TaskEngine> extends AbsContextual> { private config; private _tasks?; private _events?; protected get adapter(): A; protected get registry(): TaskHandlerRegistry; protected get bus(): TaskEventBus; protected get tasks(): Repo; protected get events(): Repo; protected running: boolean; constructor(config: TaskEngineConfig); isRunning(): boolean; push(task: TaskModel, ...args: MaybeContextualArg): Promise; cancel(id: string, ...args: MaybeContextualArg): Promise; start(): void; stop(): void; private loop; private claimBatch; private tryClaim; private executeClaimed; private runComposite; private appendLog; private emitStatus; private emitLog; private emitProgress; private persistEvent; toString(): string; }