import { ConnectionState, MediaStreamTrack, RTCIceCandidate, RtcpPacket, RtpPacket } from 'werift'; import { Observable, ReplaySubject, Subject } from 'rxjs'; import { Subscribed } from '../subscribed'; export interface BasicPeerConnection { createOffer(): Promise<{ sdp: string; }>; acceptAnswer(answer: { type: 'answer'; sdp: string; }): Promise; addIceCandidate(candidate: Partial): Promise; onIceCandidate: Observable; onConnectionState: Observable; close(): void; requestKeyFrame?: () => void; } export declare class WeriftPeerConnection extends Subscribed implements BasicPeerConnection { private pc; onAudioRtp: Subject; onAudioRtcp: Subject; onVideoRtp: Subject; onVideoRtcp: Subject; onIceCandidate: Subject; onConnectionState: ReplaySubject<"connected" | "closed" | "failed" | "disconnected" | "new" | "connecting">; returnAudioTrack: MediaStreamTrack; private onRequestKeyFrame; constructor(); createOffer(): Promise; acceptAnswer(answer: { type: 'answer'; sdp: string; }): Promise; addIceCandidate(candidate: RTCIceCandidate): Promise; requestKeyFrame(): void; close(): void; }