/** State of the voice manager */ export type VoiceState = 'inactive' | 'active' | 'muted'; /** * WebRTC mesh voice manager. * * Handles microphone capture, peer-to-peer audio connections, * and SDP/ICE signaling relay. Mesh topology — each participant * connects directly to every other participant (suitable for <8 peers). */ export declare class VoiceManager { private localStream; private peers; private state; private sendSignal; constructor(sendSignal: (targetUserId: string, sdp?: string, candidate?: string) => void); /** Get current voice state */ getState(): VoiceState; /** Start voice — request microphone and begin connections */ start(): Promise; /** Toggle mute on/off */ toggleMute(): void; /** Whether voice is currently active (active or muted) */ isActive(): boolean; /** Whether mic is currently muted */ isMuted(): boolean; /** * Initiate a WebRTC connection to a peer (caller side). * Creates an offer and sends it via signaling. */ connectToPeer(peerId: string): Promise; /** * Handle an incoming voice signal (SDP offer/answer or ICE candidate). */ handleSignal(fromUserId: string, sdp?: string, candidate?: string): Promise; /** Remove a peer connection (when peer leaves) */ removePeer(peerId: string): void; /** Stop voice — release microphone and close all connections */ stop(): void; /** Get the number of active peer connections */ getPeerCount(): number; /** Clean up everything */ dispose(): void; private createPeerConnection; } //# sourceMappingURL=voice-manager.d.ts.map