/** * This class is used to monitor the performance of video processing, and report performance events. */ export declare class VideoPerformanceMonitor { private reportPerformanceEvent; private static readonly distributionBinSize; private static readonly calculateFPSInterval; private isFirstFrameProcessed; private applyingEffect?; private appliedEffect?; private frameProcessTimeLimit; private gettingTextureStreamStartedAt; private currentStreamId; private frameProcessingStartedAt; private frameProcessingTimeCost; private processedFrameCount; private performanceStatistics; constructor(reportPerformanceEvent: (apiVersionTag: string, actionName: string, args: unknown[]) => void); /** * Start to check frame processing time intervally * and report performance event if the average frame processing time is too long. */ startMonitorSlowFrameProcessing(): void; /** * Define the time limit of frame processing. * When the average frame processing time is longer than the time limit, a "video.performance.frameProcessingSlow" event will be reported. * @param timeLimit */ setFrameProcessTimeLimit(timeLimit: number): void; /** * Call this function when the app starts to switch to the new video effect */ reportApplyingVideoEffect(effectId: string, effectParam?: string): void; /** * Call this function when the new video effect is ready */ reportVideoEffectChanged(effectId: string, effectParam?: string): void; /** * Call this function when the app starts to process a video frame */ reportStartFrameProcessing(frameWidth: number, frameHeight: number): void; /** * Call this function when the app finishes successfully processing a video frame */ reportFrameProcessed(): void; /** * Call this function when the app starts to get the texture stream */ reportGettingTextureStream(streamId: string): void; /** * Call this function when the app finishes successfully getting the texture stream */ reportTextureStreamAcquired(): void; }