import { ISubject } from '../interfaces/iSubject';
import { SubjectPromise } from '../types/subjectPromise';
import { Subject } from './subject';
export declare class PublisherSubscriber<Result> extends Subject<Result> implements ISubject {
    protected subscribers: {
        [topic: string]: Array<SubjectPromise<Result>>;
    };
    constructor();
    subscribe(subscriber: SubjectPromise<Result>, topic: string): Promise<Result[]>;
    unsubscribe(subscriber: SubjectPromise<Result>, topic: string): boolean;
    publish(topic: string, ...params: any[]): Promise<Result[]>;
    protected checkSubscriber(subscriber: SubjectPromise<Result>, topic: string): number;
}
//# sourceMappingURL=publisherSubscriber.d.ts.map