/*!
PrivMX Endpoint.
Copyright © 2024 Simplito sp. z o.o.

This file is part of the PrivMX Platform (https://privmx.dev).
This software is Licensed under the PrivMX Free License.

See the License for the specific language governing permissions and
limitations under the License.
*/
import { RoomModel, SdpWithRoomModel, SetAnswerAndSetRemoteDescriptionModel, UpdateKeysModel, WebRtcInterface } from "../service/WebRtcInterface";
import { ConnectionType } from "./PeerConnectionsManager";
import { StreamRoomId } from "./types/ApiTypes";
import { WebRtcClient } from "./WebRtcClient";
export declare class WebRtcInterfaceImpl implements WebRtcInterface {
    private webRtcClient;
    constructor(webRtcClient: WebRtcClient);
    private methodsMap;
    isMainThread(): boolean;
    getClient(): WebRtcClient;
    methodCall(name: string, params: any): Promise<any>;
    createOfferAndSetLocalDescription(model: RoomModel): Promise<string>;
    createAnswerAndSetDescriptions(model: SdpWithRoomModel): Promise<string>;
    setAnswerAndSetRemoteDescription(model: SetAnswerAndSetRemoteDescriptionModel): Promise<void>;
    close(roomId: StreamRoomId): Promise<void>;
    updateKeys(model: UpdateKeysModel): Promise<void>;
    updateSessionId(streamRoomId: StreamRoomId, sessionId: number, connectionType: ConnectionType): Promise<void>;
}
