import { WorkflowEngine } from "../workflows/engine.js"; import { type WorkflowRunStore } from "../workflows/store.js"; import type { WorkflowDefinition } from "../workflows/types.js"; import type { ControllerWorkflowScheduler, WorkflowSchedulerRequest, WorkflowSchedulerResult } from "./workflows.js"; export type ResolvedChildWorkflow = { workflow: WorkflowDefinition; workflowPath?: string; }; export type WorkflowEngineSchedulerOptions = { store: WorkflowRunStore; resolveWorkflow: (name: string) => Promise; createEngine: (request: WorkflowSchedulerRequest) => WorkflowEngine; /** * Release resources the engine held after its run settles, for example a * headless child process. Called once per finished run. */ disposeEngine?: (engine: WorkflowEngine) => Promise; }; export declare class WorkflowEngineScheduler implements ControllerWorkflowScheduler { private readonly options; private readonly active; constructor(options: WorkflowEngineSchedulerOptions); ensure(request: WorkflowSchedulerRequest, signal: AbortSignal, onComplete: (result: WorkflowSchedulerResult) => void): Promise; waitForIdle(): Promise; }