export declare class DeviceInfo { deviceId: string; defaultLabel: string; label: string; isLabelGuessed: boolean; } export interface DeviceApiOnChanged { (): void; } export declare class DeviceApi { private static sLastUpdate; static get LastUpdate(): number; static get HasInfo(): boolean; private static sIsPending; static get IsPending(): boolean; private static sLastError; private static get LastError(); private static sDeviceInfo; private static sVideoDeviceCounter; private static sAccessStream; private static sUpdateEvents; static AddOnChangedHandler(evt: DeviceApiOnChanged): void; static RemOnChangedHandler(evt: DeviceApiOnChanged): void; private static TriggerChangedEvent; private static InternalOnEnum; static get Devices(): { [id: string]: DeviceInfo; }; static Reset(): void; private static InternalOnErrorCatch; private static InternalOnErrorString; private static InternalOnStream; /**Updates the device list based on the current * access. Gives the devices numbers if the name isn't known. */ static Update(): void; /**Checks if the API is available in the browser. * false - browser doesn't support this API * true - browser supports the API (might still refuse to give * us access later on) */ static IsApiAvailable(): boolean; /**Asks the user for access first to get the full * device names. */ static RequestUpdate(): void; static GetDeviceId(label: string): string; }