import { type AudioPropertiesConfig, type IRTCEngine, type NetworkQuality, type onUserJoinedEvent, type onUserLeaveEvent, type UserMessageEvent } from '@volcengine/rtc';
import { RealtimeEventHandler } from './event-handler';
import { type VideoConfig } from '.';
export declare class EngineClient extends RealtimeEventHandler {
    private engine;
    private joinUserId;
    private _AIAnsExtension;
    private _isSupportVideo;
    private _videoConfig?;
    private _streamIndex?;
    private _roomUserId?;
    constructor(appId: string, debug?: boolean, isTestEnv?: boolean, isSupportVideo?: boolean, videoConfig?: VideoConfig);
    bindEngineEvents(): void;
    removeEventListener(): void;
    _parseMessage(event: UserMessageEvent): any;
    handleMessage(event: UserMessageEvent): void;
    handleEventError(e: unknown): void;
    handleUserJoin(event: onUserJoinedEvent): void;
    handleUserLeave(event: onUserLeaveEvent): void;
    handlePlayerEvent(event: unknown): void;
    handleNetworkQuality(uplinkNetworkQuality: NetworkQuality, downlinkNetworkQuality: NetworkQuality): void;
    handleTrackEnded(event: any): void;
    joinRoom(options: {
        token: string;
        roomId: string;
        uid: string;
        audioMutedDefault?: boolean;
        videoOnDefault?: boolean;
        isAutoSubscribeAudio?: boolean;
    }): Promise<void>;
    setAudioInputDevice(deviceId: string): Promise<void>;
    setAudioOutputDevice(deviceId: string): Promise<void>;
    setVideoInputDevice(deviceId: string, isAutoCapture?: boolean): Promise<void>;
    createLocalStream(userId?: string, videoConfig?: VideoConfig): Promise<void>;
    disconnect(): Promise<void>;
    changeAudioState(isMicOn: boolean): Promise<void>;
    changeVideoState(isVideoOn: boolean): Promise<void>;
    stop(): Promise<void>;
    sendMessage(message: Record<string, unknown>): Promise<void>;
    enableAudioPropertiesReport(config?: AudioPropertiesConfig): void;
    handleLocalAudioPropertiesReport(event: any): void;
    handleRemoteAudioPropertiesReport(event: unknown): void;
    enableAudioNoiseReduction(): Promise<void>;
    initAIAnsExtension(): Promise<void>;
    changeAIAnsExtension(enable: boolean): void;
    startAudioPlaybackDeviceTest(): Promise<void>;
    stopAudioPlaybackDeviceTest(): void;
    getRtcEngine(): IRTCEngine;
}
