import { OpusGetRequest, OpusSetRequest } from './opus.js'; export interface IWorkerRequest { data: Data; _response?: RequestResponse; transfer?: ArrayBuffer[]; requestId: RequestId; } export type CodecId = string; export interface IRequestResponseSuccess { requestId: RequestId; value: T; } export type RequestResponse = IRequestResponseSuccess | { requestId: RequestId; failures: string[]; }; export type RequestId = ReturnType; export interface ICreateEncoderOptions { sampleRate: number; channels: number; application: number; outBufferLength: number; pcmBufferLength: number; } export interface IOpusGetRequest extends IWorkerRequest { type: RequestType.OpusGetRequest; } export declare function getFromEncoder(data: OpusGetRequest): IOpusGetRequest; export interface IOpusSetRequest extends IWorkerRequest { type: RequestType.OpusSetRequest; } export declare function setToEncoder(data: OpusSetRequest): IOpusSetRequest; export interface ICreateEncoder extends IWorkerRequest { encoderId: CodecId; type: RequestType.CreateEncoder; } export interface ICreateDecoderOptions { sampleRate: number; channels: number; frameSize: number; } export interface ICreateDecoder extends IWorkerRequest { decoderId: CodecId; type: RequestType.CreateDecoder; } export declare function createDecoder({ sampleRate, channels, frameSize }: ICreateDecoderOptions): ICreateDecoder; export interface IDestroyEncoderOptions { encoderId: CodecId; } export interface IDestroyEncoder extends IWorkerRequest { type: RequestType.DestroyEncoder; } export declare function destroyEncoder(data: IDestroyEncoderOptions): IDestroyEncoder; export interface IDrainRingBufferResult { } export declare enum RequestType { CreateEncoder = 0, CreateDecoder = 1, EncodeFloat = 2, DecodeFloat = 3, DestroyEncoder = 4, InitializeWorker = 5, DestroyDecoder = 6, OpusGetRequest = 7, OpusSetRequest = 8 } export interface IInitializeWorker extends IWorkerRequest { type: RequestType.InitializeWorker; } export interface IInitializeWorkerOptions { wasmFileHref: string; } export declare function initializeWorker(data: IInitializeWorkerOptions): IInitializeWorker; export interface IDestroyDecoderOptions { decoderId: CodecId; } export interface IDestroyDecoder extends IWorkerRequest { type: RequestType.DestroyDecoder; } export declare function destroyDecoder(data: IDestroyDecoderOptions): IDestroyDecoder; export interface IDecodeFloatOptions { decoderId: CodecId; decodeFec?: number; encoded: ArrayBuffer; } export interface IDecodeFloatResult { decoded: ArrayBuffer; } export interface IDecodeFloat extends IWorkerRequest { type: RequestType.DecodeFloat; } export declare function decodeFloat(data: IDecodeFloatOptions): IDecodeFloat; export interface IEncodeFloatResult { /** * if null, it means the data was written to the ring buffer, but not yet submitted */ encoded: { buffer: ArrayBuffer; /** * duration in milliseconds */ duration: number; } | null; } export interface IEncodeFloat extends IWorkerRequest { type: RequestType.EncodeFloat; } export interface IEncodeFloatOptions { encoderId: CodecId; maxDataBytes: number; /** * if null, it will try to drain the ring buffer for the data * that has been queued */ input: { pcm: Float32Array; } | null; } export type RequestResponseType = T extends IWorkerRequest ? R : never; export type WorkerRequest = IInitializeWorker | IEncodeFloat | ICreateEncoder | ICreateDecoder | IDestroyDecoder | IDecodeFloat | IDestroyEncoder | IOpusGetRequest | IOpusSetRequest; declare function getRequestId(): string; export declare function createEncoder(data: ICreateEncoderOptions): ICreateEncoder; export declare function encodeFloat(data: IEncodeFloatOptions): IEncodeFloat; export {}; //# sourceMappingURL=actions.d.ts.map