import { ParticipantId } from '../../types/Participant'; import { IScreenShareStat } from '../../types/ScreenSharingStat'; import { StatScreenShareFirstFrame } from '../stat/StatScreenShareFirstFrame'; import { FrameChunk } from './Utils'; export type IOnStat = (stat: IScreenShareStat) => void; export type IOnStream = (stream: MediaStream) => void; export declare abstract class BaseStreamBuilder { protected readonly _participantId: ParticipantId; protected readonly _onStream: IOnStream; protected readonly _onStat: IOnStat; protected readonly _onKeyFrameRequested?: VoidFunction; protected readonly _statScreenShareFirstFrame: StatScreenShareFirstFrame; protected _chunks: FrameChunk[]; protected constructor(participantId: ParticipantId, onStream: IOnStream, onStat: IOnStat, onKeyFrameRequested?: VoidFunction); appendChunk(chunk: FrameChunk): void; destroy(): void; protected abstract _processFrame(frame: FrameData): void; private _processFrameData; static getFrameSize(frameData: Uint8Array): { width: number; height: number; }; static isBrowserSupported(): boolean; private _measureFreezeDuration; } export interface FrameData { timestamp: number; frameData: Uint8Array; isVP9: boolean; keyframe: boolean; width: number; height: number; }