/** * Main-thread client for the TranscodeWorker. * * Provides the same interface as SegmentTranscoder but delegates all * heavy work to a Web Worker via postMessage. */ import type { SegmentTranscoderConfig, TranscodedInit } from "./segment-transcoder.js"; type PerfEnvelope = { demuxMs: number; decodeMs: number; encodeMs: number; frames: number; segDurMs: number; width: number; height: number; }; export interface TranscodeWorkerClientConfig extends SegmentTranscoderConfig { /** URL to the worker script (transcode-worker.js). */ workerUrl: string; } export declare class TranscodeWorkerClient { private _workerReady; private _ready; private _initParsed; private _initResult; private _segmentId; private _pendingResolves; private _pendingPrepareInit; private _readyPromise; private _readyResolve; private _initParsedPromise; private _initParsedResolve; private _initParsedReject; private _lastPerfStats; constructor(config: TranscodeWorkerClientConfig); get isInitialized(): boolean; get isInitParsed(): boolean; get initResult(): TranscodedInit | null; get lastPerfStats(): PerfEnvelope | null; /** Wait for the WASM decoder to be ready inside the worker */ waitReady(): Promise; /** Send an init segment (ftyp + moov) to the worker for parsing */ processInitSegment(data: Uint8Array): Promise; /** * Process an HEVC init segment and return a matching H.264 fMP4 init * segment (warmup-encoder path inside the worker). Required by * transmuxer plugins that must hand an init segment back to the host * player before any media has been seen (Shaka 4.x's Transmuxer * contract). */ prepareInit(data: Uint8Array): Promise; /** Send a media segment to the worker for transcoding */ processMediaSegment(data: Uint8Array): Promise; /** Send a media segment for streaming transcoding — onChunk called for each partial result */ processMediaSegmentStreaming(data: Uint8Array, onChunk: (h264: Uint8Array, initSegment: Uint8Array | null, codec: string | null) => Promise | void): Promise; /** Abort current transcoding, reset state for seek */ abort(): void; /** Destroy the worker */ destroy(): void; private _onMessage; } export {}; //# sourceMappingURL=transcode-worker-client.d.ts.map