export type MediaDeviceKind = 'audioinput' | 'audiooutput' | 'videoinput'; export interface MediaDeviceInfo { readonly deviceId: string; readonly groupId: string; readonly kind: MediaDeviceKind; readonly label: string; readonly facing: string; toJSON(): any; } interface ULongRange { max?: number; min?: number; } interface DoubleRange { max?: number; min?: number; } interface ConstrainDoubleRange extends DoubleRange { exact?: number; ideal?: number; } interface ConstrainDOMStringParameters { exact?: string | string[]; ideal?: string | string[]; } interface ConstrainULongRange extends ULongRange { exact?: number; ideal?: number; } interface ConstrainBooleanParameters { exact?: boolean; ideal?: boolean; } export type ConstrainBoolean = boolean | ConstrainBooleanParameters; export type ConstrainDOMString = string | string[] | ConstrainDOMStringParameters; export type ConstrainDouble = number | ConstrainDoubleRange; export type ConstrainULong = number | ConstrainULongRange; export interface MediaTrackConstraintSet { aspectRatio?: ConstrainDouble; autoGainControl?: ConstrainBoolean; channelCount?: ConstrainULong; deviceId?: ConstrainDOMString; echoCancellation?: ConstrainBoolean; facingMode?: ConstrainDOMString; frameRate?: ConstrainDouble; groupId?: ConstrainDOMString; height?: ConstrainULong; latency?: ConstrainDouble; noiseSuppression?: ConstrainBoolean; sampleRate?: ConstrainULong; sampleSize?: ConstrainULong; suppressLocalAudioPlayback?: ConstrainBoolean; width?: ConstrainULong; } interface MediaStreamConstraints { audio?: boolean | MediaTrackConstraints; peerIdentity?: string; preferCurrentTab?: boolean; video?: boolean | MediaTrackConstraints; } export interface MediaTrackConstraints extends MediaTrackConstraintSet { advanced?: MediaTrackConstraintSet[]; } export type VideoQuality = 'qvga' | 'vga' | 'hd' | 'hd_cropped'; export type ScreenShareQuality = 'vga' | 'hd' | 'full_hd'; export interface RealtimeKitMediaTrackConstraints extends MediaTrackConstraints { optional?: Array; } export interface RealtimeKitMediaStreamConstraints extends MediaStreamConstraints { audio?: boolean | RealtimeKitMediaTrackConstraints; timeout?: number; } export interface VideoConstraints { [key: string]: RealtimeKitMediaTrackConstraints; } export type MediaPermission = 'ACCEPTED' | 'DENIED' | 'SYS_DENIED' | 'UNAVAILABLE' | 'NOT_REQUESTED'; export {};