import { MessageInterface, MessageListener } from '../communication-interface/MessageInterface';
import { DBFactory } from '../db/DBFactory';
export declare class RTCPushMessage implements MessageInterface {
    private dbFactory;
    private _initPromise;
    private pushTransport?;
    private signalMessagePushTransport?;
    private webRTCTransport?;
    private signalMessageWebRTCTransport?;
    constructor(dbFactory: DBFactory);
    getKeyInformation(): Promise<any>;
    getOwnUserId(): Promise<string>;
    requiresBootstrap(): boolean;
    private init;
    getOwnAddress(): Promise<string>;
    addContact(_userId: string, address: any): Promise<string | void>;
    send(userIdTo: string, message: string): Promise<void>;
    private _webRTCConnectionPromiseResolvers;
    private _webRTCConnectionPromises;
    connectWebRTC(userId: string, messageHandler?: (message: string) => Promise<void>): Promise<void>;
    /**
     * Processes a webRTC connection "offer"
     * @param fromId the userId of the party aiming to connect
     * @param otherAddress the webRTC address of the party aiming to connect
     * @returns a message to return to the party aiming to connect
     */
    webRTCOffer(fromId: string, otherAddress: string): Promise<string>;
    private _messageCallbacks;
    private _messageRecieved;
    addMessageListener(listener: MessageListener): void | Promise<void>;
    /**
     * get a list of clients directly connected via webRTC
     * @returns the user ids that currently have an established webRTC connection
     */
    getRTCConnectedUsers(): string[];
}
//# sourceMappingURL=RTCPushMessage.d.ts.map