import { IEncodable, ITimeoutOptions } from '../util'; import { ISender, IReceiver } from '@consento/crypto'; import { INotifications, INotificationsTransport, INotificationsOptions, IConnection, INotificationProcessor, INotification, ISuccessNotification, INotificationError, ISubscribeOptions, IReceiveOptions } from './types'; export declare function isSuccess(input: INotification): input is ISuccessNotification; export declare function isError(input: INotification): input is INotificationError; export declare class EmptyTransport implements INotificationsTransport { subscribe(receivers: IReceiver[]): Promise; unsubscribe(receivers: IReceiver[]): Promise; reset(receivers: IReceiver[]): Promise; send(): Promise; } export declare class Notifications implements INotifications { _transport: TTransport; _receivers: { [receiverIdBase64: string]: IReceiver; }; _reset: Promise | undefined; processors: Set; constructor({ transport, error }: INotificationsOptions); get transport(): TTransport; reset(receivers: IReceiver[], opts?: ITimeoutOptions): Promise; subscribe(receivers: IReceiver[], opts?: ISubscribeOptions): Promise; unsubscribe(receivers: IReceiver[], opts?: ISubscribeOptions): Promise; send(sender: ISender, message: IEncodable, opts?: ITimeoutOptions): Promise; receive(receiver: IReceiver, opts?: IReceiveOptions): Promise<{ afterSubscribe: Promise; }>; sendAndReceive(connection: IConnection, message: IEncodable, opts?: IReceiveOptions): Promise<{ afterSubscribe: Promise; }>; }