import { Event } from '@skyway-sdk/common';
import { AnalyticsSession, IceManager, SkyWayContext, TransportConnectionState } from '@skyway-sdk/core';
import { SfuRestApiClient } from '@skyway-sdk/sfu-api-client';
import { DataProducerOptions } from '@skyway-sdk/mediasoup-client/lib/DataProducer';
import { MediaKind, RtpParameters } from '@skyway-sdk/mediasoup-client/lib/RtpParameters';
import { ConnectionState, Transport } from '@skyway-sdk/mediasoup-client/lib/Transport';
import { SfuBotMember } from '../../member';
export declare class SfuTransport {
    msTransport: Transport;
    private _bot;
    private _iceManager;
    private _sfuApi;
    private _context;
    private _analyticsSession?;
    private _backoffIceRestart;
    private _connectionState;
    private _options;
    readonly onProduce: Event<{
        producerOptions: {
            kind: MediaKind;
            rtpParameters: RtpParameters;
            appData: any;
        };
        callback: (props: {
            id: string;
        }) => void;
        errback: (err: any) => void;
    }>;
    readonly onProduceData: Event<{
        producerOptions: DataProducerOptions;
        callback: (props: {
            id: string;
        }) => void;
        errback: (err: any) => void;
    }>;
    readonly onMediasoupConnectionStateChanged: Event<ConnectionState>;
    readonly onConnectionStateChanged: Event<TransportConnectionState>;
    get pc(): RTCPeerConnection;
    get id(): string;
    get connectionState(): TransportConnectionState;
    constructor(msTransport: Transport, _bot: SfuBotMember, _iceManager: IceManager, _sfuApi: SfuRestApiClient, _context: SkyWayContext, _analyticsSession?: AnalyticsSession | undefined);
    toJSON(): {
        id: string;
        direction: "send" | "recv";
        connectionState: TransportConnectionState;
    };
    close(): void;
    private _setConnectionState;
    readonly restartIce: () => Promise<import("@skyway-sdk/mediasoup-client/lib/Transport").IceParameters | undefined>;
    /**@private */
    _mediasoupRestartIce(): Promise<import("@skyway-sdk/mediasoup-client/lib/Transport").IceParameters | undefined>;
    private _waitForMsConnectionState;
    private _onConnect;
}
//# sourceMappingURL=transport.d.ts.map