import type { ResourceManagerStore } from "./store.js"; import type { ChildWorkflowRecord, ChildWorkflowState, ResourceManagerFollowUpResult, ResourceManagerQueueClaim, ResourceManagerQueueFollowUpRequest, ResourceManagerRemoveFollowUpRequest, ManagedResource, ResourceManagerSettingsChangeRequest, ResourceManagerSettingsChangeResult, ResourceManagerWorkflows } from "./types.js"; export type WorkflowSchedulerRequest = { requestId: string; attempt: number; workflow: string; input: unknown; runId: string; }; export type WorkflowSchedulerResult = { state: ChildWorkflowState; runId?: string; error?: string; }; export type ResourceManagerWorkflowControlRequest = TRequest & { managedResourceUid: string; actorRequestKey: string; }; export interface ResourceManagerWorkflowScheduler { ensure(request: WorkflowSchedulerRequest, signal: AbortSignal, onComplete: (result: WorkflowSchedulerResult) => void): Promise; changeSettings?(request: ResourceManagerWorkflowControlRequest, signal: AbortSignal): Promise; queueFollowUp?(request: ResourceManagerWorkflowControlRequest, signal: AbortSignal): Promise; removeFollowUp?(request: ResourceManagerWorkflowControlRequest, signal: AbortSignal): Promise; } export declare class ResourceManagerWorkflowCoordinator { private readonly store; private readonly scheduler?; constructor(store: ResourceManagerStore, scheduler?: ResourceManagerWorkflowScheduler | undefined); forResource(resource: ManagedResource, claim: ResourceManagerQueueClaim, signal: AbortSignal): ResourceManagerWorkflows; complete(requestId: string, result: WorkflowSchedulerResult): ChildWorkflowRecord; private ensure; private enqueueParent; private recordEvent; }