export type ISyncTopic = { publish: (message: T) => void; subscribe: ISubscribeTopic; }; export type ISubscribeTopic = (subscriber: ITopicSubscriber) => IUnsubscribeTopic; export type ITopicPublish = (message: T) => Promise; export type ITopic = { publish: ITopicPublish; subscribe: ISubscribeTopic; }; export type ITopicSubscriber = (message: T) => any; export type IUnsubscribeTopic = () => void | any; export declare function SyncTopic(): ISyncTopic; export declare class TopicAggregateError extends Error { errors: Error[]; constructor(errors: Error[], message?: string); } export declare function Topic({ sequent, reversed, }?: { sequent?: boolean | undefined; reversed?: boolean | undefined; }): ITopic; export declare function waitForMessage(subscribe: ISubscribeTopic | ITopic, isAcceptable: (message: T) => boolean | Promise): Promise;