import { Observable } from 'rxjs'; import { TLSSocket } from 'tls'; import { MessageType } from '@protobuf-ts/runtime'; import { PacketType } from './packet-type.js'; interface MumbleSocketReader { length: number; callback: (data: Buffer) => void; } interface AudioPacket { source: number; } export declare enum AudioCodec { CELTAlpha = 0, Ping = 1, Speex = 2, CELTBeta = 3, Opus = 4 } export interface FullAudioPacket { source: number; target: number; codec: AudioCodec; sequence: number; audioData: Buffer; hasTerminator: boolean; } export interface SendAudioOptions { data: Buffer; codec?: AudioCodec; target?: number; isTerminator?: boolean; } export declare class MumbleSocket { private readonly socket; private readonly _packet; private readonly _audioPacket; private readonly _fullAudioPacket; private buffers; private length; private readers; private audioSequence; constructor(socket: TLSSocket); get packet(): Observable; get audioPacket(): Observable; get fullAudioPacket(): Observable; read(length: number, callback: MumbleSocketReader['callback']): void; send(message: MessageType, payload: T): Promise; write(buffer: Buffer | Uint8Array): Promise; end(): void; sendAudio({ data, codec, target, isTerminator, }: SendAudioOptions): Promise; private receiveData; private flushReaders; private readPrefix; private readPacket; private decodeAudio; } export {};