import EventEmitter from "eventemitter3"; import { HandlerFactory, HandlerSetLocalOfferSdpOptions, HandlerSetLocalOfferSdpResult, HandlerSetRemoteAnswerSdpOptions } from './handlers/HandlerInterface'; import { streamState } from '../../common/exportInterface'; export declare type BuiltinHandlerName = 'Chrome73' | 'Chrome68' | 'Chrome58' | 'Safari11' | 'Safari12' | 'Firefox60' | 'Edge80'; export declare type DeviceOptions = { /** * The name of one of the builtin handlers. */ handlerName?: BuiltinHandlerName; /** * Custom handler factory. */ handlerFactory?: HandlerFactory; /** * DEPRECATED! * The name of one of the builtin handlers. */ Handler?: string; }; export declare function detectDevice(): BuiltinHandlerName | undefined; export declare class Device extends EventEmitter { private readonly _handlerFactory; private readonly _handlerName; private _extendedRtpCapabilities; private readonly _handler; private _direction; private _streamId; constructor({ handlerName, handlerFactory, Handler }?: DeviceOptions); /** * The RTC handler name. */ get handlerName(): string; /** * Initialize the Device. */ load({ streamId, direction, iceServers, iceTransportPolicy }: any): Promise; getLocalOfferSdp(params?: HandlerSetLocalOfferSdpOptions): Promise; setRemoteAnswerSdp({ remoteAnswerSdp, candidateArray }: HandlerSetRemoteAnswerSdpOptions): Promise; stopTransceiver(): void; getConnectionStateUpdate(): Promise; getPlayStream(): Promise; setUserCustomBitrate(bitrate: number): void; replaceTrack(track: MediaStreamTrack): void; }