export type UpdatedList = {
    list: {
        videoInput: MediaDeviceInfo[];
        audioInput: MediaDeviceInfo[];
        audioOutput: MediaDeviceInfo[];
    };
    updates: {
        videoInput: {
            added: MediaDeviceInfo[];
            removed: MediaDeviceInfo[];
        };
        audioInput: {
            added: MediaDeviceInfo[];
            removed: MediaDeviceInfo[];
        };
        audioOutput: {
            added: MediaDeviceInfo[];
            removed: MediaDeviceInfo[];
        };
    };
};
export default class MediaDevicesService {
    static enumerateVideoInputDevices(): Promise<MediaDeviceInfo[]>;
    static enumerateAudioInputDevices(): Promise<MediaDeviceInfo[]>;
    static enumerateAudioOutputDevices(): Promise<MediaDeviceInfo[]>;
    static selectCamera(device: string): Promise<string>;
    static selectMicrophone(device: string): Promise<string>;
    static selectSpeaker(device: string): Promise<string>;
    static getSelectedCamera(): MediaDeviceInfo;
    static getSelectedMicrophone(): MediaDeviceInfo;
    static getSelectedSpeaker(): MediaDeviceInfo;
    static onDeviceListChanged(handler: (updatedList: UpdatedList) => void): () => void;
}
