import { IceManager, LocalAudioStream, LocalCustomVideoStream, LocalPersonImpl, LocalVideoStream, PublicationImpl, SkyWayChannelImpl, SkyWayContext, TransportConnectionState } from '@skyway-sdk/core';
import { SfuRestApiClient } from '@skyway-sdk/sfu-api-client';
import { Forwarding, ForwardingConfigure } from '../forwarding';
import { SfuBotMember } from '../member';
import { SfuTransport } from './transport/transport';
import { TransportRepository } from './transport/transportRepository';
export declare class Sender {
    readonly publication: PublicationImpl<LocalAudioStream | LocalVideoStream | LocalCustomVideoStream>;
    readonly channel: SkyWayChannelImpl;
    private readonly _api;
    private _transportRepository;
    private _localPerson;
    private _bot;
    private _iceManager;
    private _context;
    forwarding?: Forwarding;
    forwardingId?: string;
    private _producer?;
    /**@private */
    _broadcasterTransport?: SfuTransport;
    private _disposer;
    private _unsubscribeStreamEnableChange?;
    private _cleanupStreamCallbacks?;
    private _connectionState;
    private readonly onConnectionStateChanged;
    closed: boolean;
    private sendSubscriptionStatsReportTimer;
    private _waitingSendSubscriptionStatsReports;
    constructor(publication: PublicationImpl<LocalAudioStream | LocalVideoStream | LocalCustomVideoStream>, channel: SkyWayChannelImpl, _api: SfuRestApiClient, _transportRepository: TransportRepository, _localPerson: LocalPersonImpl, _bot: SfuBotMember, _iceManager: IceManager, _context: SkyWayContext);
    private _setConnectionState;
    toJSON(): {
        forwarding: Forwarding | undefined;
        broadcasterTransport: SfuTransport | undefined;
        _connectionState: TransportConnectionState;
    };
    /**@throws {SkyWayError} */
    startForwarding(configure: ForwardingConfigure): Promise<Forwarding>;
    private _listenStreamEnableChange;
    private _produce;
    /** @description 引数のParametersを持ったCodecを優先度配列の先頭に持ってくる
     *  @description H264対応のため
     */
    private _fixVideoCodecWithParametersOrder;
    private _setupTransportAccessForStream;
    unproduce(): void;
    private _replaceTrack;
    close(): void;
    get pc(): RTCPeerConnection | undefined;
    private startSendSubscriptionStatsReportTimer;
}
//# sourceMappingURL=sender.d.ts.map