import { Event } from '@skyway-sdk/common';
import { type AnalyticsSession, type IceManager, type SkyWayContext } from '@skyway-sdk/core';
import type { SFURestApiClient } from '@skyway-sdk/sfu-api-client';
import type { RtpCapabilities } from 'mediasoup-client/lib/RtpParameters';
import type { TransportOptions } from 'mediasoup-client/lib/Transport';
import type { SFUBotMember } from '../../member';
import { SFUTransport } from './transport';
export declare class TransportRepository {
    private _context;
    private readonly _api;
    onTransportCreated: Event<string>;
    private readonly _device;
    /**@private */
    _transports: {
        [id: string]: SFUTransport;
    };
    get rtpCapabilities(): RtpCapabilities | undefined;
    constructor(_context: SkyWayContext, _api: SFURestApiClient);
    loadDevice(rtpCapabilities: RtpCapabilities): Promise<void>;
    /**worker内にmemberIdに紐つくTransportが無ければ新しいTransportが作られる */
    createTransport(personId: string, bot: SFUBotMember, transportOptions: TransportOptions, direction: 'send' | 'recv', iceManager: IceManager, analyticsSession?: AnalyticsSession): SFUTransport;
    readonly getTransport: (personId: string, id: string) => SFUTransport;
    deleteTransports(personId: string): void;
}
//# sourceMappingURL=transportRepository.d.ts.map