import { WorkerPool } from "../WorkerPool"; export declare abstract class AbstractTranscoder { readonly workerLimitCount: number; protected _transcodeWorkerPool: WorkerPool; protected _initPromise: Promise; constructor(workerLimitCount: number); init(): Promise; destroy(): void; protected abstract _initTranscodeWorkerPool(): Promise; protected _createTranscodePool(workerURL: string, wasmBuffer: ArrayBuffer): Promise; } type MessageType = "init" | "transcode"; export interface BaseMessage { type: MessageType; } export interface InitMessage extends BaseMessage { type: "init"; transcoderWasm: ArrayBuffer; } export interface BinomialTranscodeMessage extends BaseMessage { type: "transcode"; format: number; buffer: Uint8Array; } export type IBinomialMessage = InitMessage | BinomialTranscodeMessage; export type TranscodeResult = { width: number; height: number; hasAlpha: boolean; format: number; faces: Array<{ data: Uint8Array; width: number; height: number; }>[]; faceCount: number; }; export type TranscodeResponse = { id: number; type: "transcoded"; } & TranscodeResult; export interface EncodedData { buffer: Uint8Array; levelWidth: number; levelHeight: number; uncompressedByteLength: number; } export interface KhronosTranscoderMessage extends BaseMessage { type: "transcode"; format: number; needZstd: boolean; data: EncodedData[][]; } export type IKhronosMessageMessage = InitMessage | KhronosTranscoderMessage; export {};