import { IPropagationStatus, PromiseDispatcherBase } from 'ste-core';
import { IPromiseSignal } from './IPromiseSignal';
import { IPromiseSignalHandler } from './IPromiseSignalHandler';
/**
 * The dispatcher handles the storage of subsciptions and facilitates
 * subscription, unsubscription and dispatching of a signal event.
 */
export declare class PromiseSignalDispatcher extends PromiseDispatcherBase<IPromiseSignalHandler> implements IPromiseSignal {
    /**
     * Creates a new SignalDispatcher instance.
     */
    constructor();
    /**
     * Dispatches the signal.
     *
     * @returns {IPropagationStatus} The status of the dispatch.
     *
     * @memberOf SignalDispatcher
     */
    dispatch(): Promise<IPropagationStatus>;
    /**
     * Dispatches the signal threaded.
     */
    dispatchAsync(): void;
    /**
     * Creates an event from the dispatcher. Will return the dispatcher
     * in a wrapper. This will prevent exposure of any dispatcher methods.
     */
    asEvent(): IPromiseSignal;
}
