import { EventEmitterProxy } from 'events-constructor'; import { PresentationStateMachine } from './PresentationStateMachine'; import { CallManager } from '../CallManager'; import { TResolutionSize } from '../types'; import { TContentHint, TOnAddedTransceiver } from '../utils/peerConnection'; import { TEventMap } from './events'; type TPresentationOptions = { isNeedReinvite?: boolean; contentHint?: TContentHint; sendEncodings?: RTCRtpEncodingParameters[]; maxResolution?: TResolutionSize; onAddedTransceiver?: TOnAddedTransceiver; }; export declare const hasCanceledStartPresentationError: (error: unknown) => error is import('repeated-calls').TCanceledError; declare class PresentationManager extends EventEmitterProxy { readonly stateMachine: PresentationStateMachine; private readonly trackService; private readonly concurrency; private readonly lifecycle; private readonly sessionPort; constructor({ callManager, maxBitrate, }: { callManager: CallManager; maxBitrate?: number; }); get isPendingPresentation(): boolean; get isPresentationInProcess(): boolean; startPresentation(beforeStartPresentation: () => Promise, videoTrack: MediaStreamVideoTrack, { isNeedReinvite, contentHint, sendEncodings, maxResolution, onAddedTransceiver, }?: TPresentationOptions, options?: { callLimit: number; }): Promise; stopPresentation(beforeStopPresentation: () => Promise): Promise; updatePresentation(beforeStartPresentation: () => Promise, videoTrack: MediaStreamVideoTrack, { contentHint, sendEncodings, maxResolution, onAddedTransceiver }?: TPresentationOptions): Promise; cancelSendPresentationWithRepeatedCalls(): void; private getStopVideoTrack; private readonly handleCallEnded; private reset; } export default PresentationManager;