import { Event } from '@skyway-sdk/common';
import { type AnalyticsSession, type IceManager, type SkyWayContext, type TransportConnectionState } from '@skyway-sdk/core';
import type { SFURestApiClient } from '@skyway-sdk/sfu-api-client';
import type { DataProducerOptions } from 'mediasoup-client/lib/DataProducer';
import type { MediaKind, RtpParameters } from 'mediasoup-client/lib/RtpParameters';
import type { ConnectionState, Transport } from 'mediasoup-client/lib/Transport';
import type { SFUBotMember } from '../../member';
export declare class SFUTransport {
    msTransport: Transport;
    private _bot;
    private _iceManager;
    private _sfuApi;
    private _context;
    private _analyticsSession?;
    private _backoffIceRestart;
    private _connectionState;
    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("mediasoup-client/lib/Transport").IceParameters | undefined>;
    /**@private */
    _mediasoupRestartIce(): Promise<import("mediasoup-client/lib/Transport").IceParameters | undefined>;
    private _waitForMsConnectionState;
    private _onConnect;
}
//# sourceMappingURL=transport.d.ts.map