/**
 * Event dispatcher.
 */
export declare class Dispatcher<T> {
    /**
     * Event context.
     */
    protected readonly _context: unknown;
    /**
     * Event handlers.
     */
    protected readonly _handlers: Set<(event: T) => unknown>;
    /**
     * Event dispatcher constructor.
     *
     * @param context Context object.
     */
    constructor(context: unknown);
    /**
     * Add listener.
     *
     * @param handler Event handler.
     */
    on(handler: (event: T) => unknown): void;
    /**
     * Remove listener.
     *
     * @param handler Event handler.
     */
    off(handler: (event: T) => unknown): void;
    /**
     * Trigger handlers.
     *
     * @param event Event data.
     * @returns Handler count.
     */
    trigger(event: T): number;
}
