import type { ILiveRTMP } from '../../interface'; export default class VEncoder { _encoder: VideoEncoder | null; _queue: Array; _encodeTimer: number; _loopEncodeTimer: number; _frameIndex: number; _gopSize: number; _encodedFrameCount: number; _core: ILiveRTMP; _lastFrame: VideoFrame | null; constructor(core: ILiveRTMP); configurate(config: VideoEncoderConfig & { gopSize: number; }): Promise; _configure(config: VideoEncoderConfig): Promise; _emitFrame(buffer: Uint8Array, chunk: EncodedVideoChunk, cfg: EncodedVideoChunkMetadata): void; _startTimer: () => void; _clearEncodeTimer(): void; _clearLoopEncodeTimer(): void; flush(): Promise; encode(frame: VideoFrame): void; startLoop(framerate: number): void; destroy(): void; }