import { EventEmitter } from 'eventemitter3';
import { Room } from 'livekit-client';
export interface TrilletCallConfig {
    token: string;
    wsUrl: string;
    audioSettings?: {
        sampleRate?: number;
        inputDeviceId?: string;
        outputDeviceId?: string;
    };
    mode?: 'voice' | 'text';
    features?: {
        enableRawAudio?: boolean;
    };
}
export declare class TrilletWebSDK extends EventEmitter {
    private room;
    isConnected: boolean;
    isAssistantSpeaking: boolean;
    audioAnalyzer?: {
        calculateVolume: () => number;
        analyser: AnalyserNode;
        cleanup: () => Promise<void>;
    };
    private audioFrameCapture;
    constructor();
    initializeCall(config: TrilletCallConfig): Promise<void>;
    enableAudioPlayback(): Promise<void>;
    endCall(): void;
    toggleMicrophone(enabled: boolean): void;
    private captureAudio;
    private setupEventHandlers;
    private handleDataEvent;
    getRoom(): Room | undefined;
}
