import { Dispatcher } from './dispatcher';
import { Constructable, EventSubscriptionCallback, IScheduler, ErrorLogger, PipelineFactory } from './interfaces';
export default class BulkDispatcher<T> {
    dispatcher: Dispatcher<T>;
    scheduler: IScheduler<T>;
    pipelineFactory: PipelineFactory<T>;
    errorLogger: ErrorLogger;
    constructor(dispatcher: Dispatcher<T>, scheduler: IScheduler<T>, pipelineFactory: PipelineFactory<T>, errorLogger: ErrorLogger);
    on<T1 extends T>(eventType: Constructable<T1>, callback: EventSubscriptionCallback<T1>): void;
    onAny(callback: EventSubscriptionCallback<T>): void;
    trigger(events: T[]): Promise<void>;
    private getAllErrors;
    private executePipelinePlan;
    private mapPipelinePromises;
    off<T1 extends T>(eventType: Constructable<T1>, callback?: EventSubscriptionCallback<T1>): void;
}
