import { AudioOrVideoType, DeviceManagerConfig, DeviceState, InitMediaConfig, UseUserMediaStartConfig } from "./types"; import TypedEmitter from "typed-emitter"; import { TrackType } from "./ScreenShareManager"; export type DeviceManagerEvents = { managerStarted: (event: { trackType: TrackType; videoConstraints: MediaTrackConstraints | undefined; audioConstraints: MediaTrackConstraints | undefined; }, state: DeviceManagerState) => void; managerInitialized: (event: { audio?: DeviceState; video?: DeviceState; }, state: DeviceManagerState) => void; devicesStarted: (event: { audio?: DeviceState & { restarting: boolean; constraints?: string | boolean; }; video?: DeviceState & { restarting: boolean; constraints?: string | boolean; }; }, state: DeviceManagerState) => void; deviceReady: (event: { trackType: TrackType; stream: MediaStream; }, state: DeviceManagerState) => void; devicesReady: (event: { video: DeviceState & { restarted: boolean; }; audio: DeviceState & { restarted: boolean; }; }, state: DeviceManagerState) => void; deviceStopped: (event: { trackType: TrackType; }, state: DeviceManagerState) => void; deviceEnabled: (event: { trackType: TrackType; }, state: DeviceManagerState) => void; deviceDisabled: (event: { trackType: TrackType; }, state: DeviceManagerState) => void; error: (event: any, state: DeviceManagerState) => void; }; export type DeviceManagerState = { video: DeviceState; audio: DeviceState; }; export type DeviceManagerStatus = "uninitialized" | "initializing" | "initialized" | "error"; declare const DeviceManager_base: new () => TypedEmitter; export declare class DeviceManager extends DeviceManager_base { private readonly defaultAudioConstraints; private readonly defaultVideoConstraints; private readonly defaultStorageConfig; private audioConstraints; private videoConstraints; private storageConfig; private status; video: DeviceState; audio: DeviceState; constructor(defaultConfig?: DeviceManagerConfig); private createStorageConfig; private getVideoConstraints; private getAudioConstraints; getStatus(): DeviceManagerStatus; init(config?: InitMediaConfig): Promise<"initialized" | "error">; private setupOnEndedCallback; private onTrackEnded; private getLastVideoDevice; private saveLastVideoDevice; private saveLastAudioDevice; private getLastAudioDevice; start({ audioDeviceId, videoDeviceId }: UseUserMediaStartConfig): Promise; stop(type: AudioOrVideoType): Promise; setEnable(type: AudioOrVideoType, value: boolean): void; setConfig(config?: DeviceManagerConfig): void; } export {}; //# sourceMappingURL=DeviceManager.d.ts.map