///
import { DeferredPromise, OpusInfo } from './types';
import * as Api from './api';
import { Logger } from 'pino';
import { Duplex, DuplexOptions, Transform, TransformCallback, TransformOptions } from 'stream';
export declare function encodeCodecHeader(opusInfo: OpusInfo): string;
export declare function decodeCodecHeader(codecHeader: string): OpusInfo;
export declare function packPacket(packet: Api.Packet): Buffer;
export declare function unpackPacket(data?: Buffer): Api.Packet | undefined;
export declare function getTime(): bigint;
export declare function isEnvVar(envVar: any): boolean;
export declare type StabilizeStreamOptions = DuplexOptions & {
bufferSize: number;
logger: Logger;
};
export declare class StabilizeStream extends Duplex {
queue: Buffer[];
logger: Logger;
queueSize: number;
requestedSize: number;
queueMaxSize: number;
waiting: boolean;
deferredWritePromise?: DeferredPromise;
constructor(opts: StabilizeStreamOptions);
/**
* Read data from the internal queue and send it further
*/
realRead(): void;
_write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): Promise;
_read(size: number): void;
_final(callback: (error?: Error | null) => void): void;
}
export declare type DataWaitPassThroughStreamOptions = TransformOptions;
export declare class DataWaitPassThroughStream extends Transform {
dataIsReady: boolean;
constructor(opts?: DataWaitPassThroughStreamOptions);
_transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;
}