import { DevicesChangeCallback, DevicesState } from '../../types'; import { PermissionsService } from '../../permissions'; import { ActiveDeviceIds, DeviceDisconnectedCallback } from '../device.types'; import { AudioOutputController } from './audio-output.controller'; export declare class DevicesController { private callbacks; private disconnectedCallbacks; private cachedDevices; private deviceChangeListener; private audioOutputController?; private hasAutoSelectedSpeaker; private getActiveDeviceIds?; private permissionsService?; constructor(audioOutputController?: AudioOutputController, getActiveDeviceIds?: () => ActiveDeviceIds, permissionsService?: PermissionsService); private setupDeviceChangeListener; getAvailable: () => Promise; private checkDeviceDisconnection; private notifyDeviceDisconnected; getCurrentAudioOutput: (audioElement: HTMLAudioElement) => string; checkPermissions: () => Promise; onChange: (callback: DevicesChangeCallback) => (() => void); onDeviceDisconnected: (callback: DeviceDisconnectedCallback) => VoidFunction; _notifyChange(devices: DevicesState): void; get state(): DevicesState; _updateCache(): Promise; destroy(): void; }