import Actor from './actor';
import type WorkerPool from './worker_pool';
/**
 * Responsible for sending messages from a {@link Source} to an associated
 * {@link WorkerSource}.
 *
 * @private
 */
declare class Dispatcher {
    workerPool: WorkerPool;
    actors: Array<Actor>;
    currentActor: number;
    id: number;
    static Actor: {
        new (...args: any): Actor;
    };
    constructor(workerPool: WorkerPool, parent: any);
    /**
     * Broadcast a message to all Workers.
     * @private
     */
    broadcast(type: string, data: unknown, cb?: (...args: any[]) => any): void;
    /**
     * Acquires an actor to dispatch messages to. The actors are distributed in round-robin fashion.
     * @returns An actor object backed by a web worker for processing messages.
     */
    getActor(): Actor;
    remove(): void;
}
export default Dispatcher;
//# sourceMappingURL=dispatcher.d.ts.map