import { EventEmitter } from 'events'; import { SagaOptions, Scaling } from '../options'; import { Executor, Facts, FactsMetaContract, Middleware, NodeMeta } from '../parameters'; import { FrameworkInterface } from '../framework'; import { Processor } from '../node'; export declare class Saga { private static instances; protected options: SagaOptions; protected eventEmitter: EventEmitter; protected nodes: Map>; protected facts: Map>; protected middleware: Map[]>; protected meta: Map; protected framework: FrameworkInterface; constructor(sagaOptions?: SagaOptions); static terminate(): void; stop(): void; addMiddleware(nodes: NodeName[], middlewares: Middleware[]): void; addNode(node: NodeName, executor: Executor, nodeMeta?: Partial, scaling?: Scaling): void; process(startNode: NodeName, data: DataType, factsMeta?: Pick, 'expireAfter' | 'executeAfter' | 'retriesLimit'>): Promise; state(): void; }