import { VideoSourceType } from '../Private/AgoraMediaBase'; import { RtcConnection } from '../Private/IAgoraRtcEngineEx'; import { RendererCacheContext, RendererContext } from '../Types'; import { IRenderer } from './IRenderer'; /** * @ignore */ export declare function generateRendererCacheKey({ channelId, uid, sourceType, }: RendererContext): string; /** * @ignore */ export declare function isUseConnection(context: RendererCacheContext): boolean; export declare abstract class IRendererCache { renderers: IRenderer[]; cacheContext: RendererCacheContext; callbackContext: { connection: RtcConnection; sourceType: VideoSourceType; }; actualFps: number; avgFrameTime: number; maxFrameTime: number; minFrameTime: number; avgFrameInterval: number; maxFrameInterval: number; minFrameInterval: number; constructor({ channelId, uid, useWebCodecsDecoder, enableFps, sourceType, localUid, position, enableAlphaMask, }: RendererContext); setCallbackContext(connection: RtcConnection, sourceType: VideoSourceType): void; get key(): string; abstract draw(): void; findRenderer(view: Element): IRenderer | undefined; addRenderer(renderer: IRenderer): void; /** * Remove the specified renderer if it is specified, otherwise remove all renderers */ removeRenderer(renderer?: IRenderer): void; setRendererContext(context: RendererContext): boolean; abstract fetchVideoFrame(): { hasMoreFrame: boolean; needRender: boolean; }; abstract renderFrame(): void; abstract startRendering(): void; abstract stopRendering(): void; release(): void; } //# sourceMappingURL=IRendererCache.d.ts.map