import EventEmitter from "eventemitter3"; import { RtpCapabilities, RtpEncodingParameters } from '../RtpParameters'; export declare type HandlerFactory = () => HandlerInterface; export declare type HandlerRunOptions = { direction: 'send' | 'recv'; iceServers?: RTCIceServer[]; iceTransportPolicy?: RTCIceTransportPolicy; }; export declare type HandlerSetLocalOfferSdpOptions = { mediastream?: MediaStream; encodings?: RtpEncodingParameters[]; }; export declare type HandlerSetLocalOfferSdpResult = { localOfferSdp: string; }; export declare type HandlerSetRemoteAnswerSdpOptions = { remoteAnswerSdp: string; candidateArray: RTCIceCandidateInit[]; }; export declare abstract class HandlerInterface extends EventEmitter { constructor(); abstract get name(): string; abstract close(): void; abstract getNativeRtpCapabilities(): Promise; abstract run(options: HandlerRunOptions): void; abstract setLocalOfferSdp(options?: HandlerSetLocalOfferSdpOptions): Promise; abstract replaceTrack(track: MediaStreamTrack): Promise; abstract setRemoteAnswerSdp(options: HandlerSetRemoteAnswerSdpOptions): Promise; abstract stopTransceiver(): void; abstract setBitrateValue(bitRate: number): void; abstract transportStats(): void; }