import { BrowserPermission } from './BrowserPermission'; import { Tracer } from '../stats'; /** * Tells if the browser supports audio output change on 'audio' elements, * see https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/setSinkId. */ export declare const checkIfAudioOutputChangeSupported: () => boolean; /** * Keeps track of the browser permission to use microphone. This permission also * affects an ability to enumerate audio devices. */ export declare const getAudioBrowserPermission: (...args: (Tracer | undefined)[]) => BrowserPermission; /** * Keeps track of the browser permission to use camera. This permission also * affects an ability to enumerate video devices. */ export declare const getVideoBrowserPermission: (...args: (Tracer | undefined)[]) => BrowserPermission; /** * Prompts the user for a permission to use audio devices (if not already granted * and was not prompted before) and lists the available 'audioinput' devices, * if devices are added/removed the list is updated, and if the permission is revoked, * the observable errors. */ export declare const getAudioDevices: (...args: (Tracer | undefined)[]) => import("rxjs").Observable; /** * Prompts the user for a permission to use video devices (if not already granted * and was not prompted before) and lists the available 'videoinput' devices, * if devices are added/removed the list is updated, and if the permission is revoked, * the observable errors. */ export declare const getVideoDevices: (...args: (Tracer | undefined)[]) => import("rxjs").Observable; /** * Prompts the user for a permission to use video devices (if not already granted * and was not prompted before) and lists the available 'audiooutput' devices, * if devices are added/removed the list is updated, and if the permission is revoked, * the observable errors. */ export declare const getAudioOutputDevices: (...args: (Tracer | undefined)[]) => import("rxjs").Observable; /** * Returns an audio media stream that fulfills the given constraints. * If no constraints are provided, it uses the browser's default ones. * * @param trackConstraints the constraints to use when requesting the stream. * @param tracer the tracer to use for tracing the stream creation. * @returns a new `MediaStream` fulfilling the given constraints. */ export declare const getAudioStream: (trackConstraints?: MediaTrackConstraints, tracer?: Tracer) => Promise; /** * Returns a video media stream that fulfills the given constraints. * If no constraints are provided, it uses the browser's default ones. * * @param trackConstraints the constraints to use when requesting the stream. * @param tracer the tracer to use for tracing the stream creation. * @returns a new `MediaStream` fulfilling the given constraints. */ export declare const getVideoStream: (trackConstraints?: MediaTrackConstraints, tracer?: Tracer) => Promise; /** * Prompts the user for a permission to share a screen. * If the user grants the permission, a screen sharing stream is returned. Throws otherwise. * * The callers of this API are responsible to handle the possible errors. * * @param options any additional options to pass to the [`getDisplayMedia`](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia) API. * @param tracer the tracer to use for tracing the stream creation. */ export declare const getScreenShareStream: (options?: DisplayMediaStreamOptions, tracer?: Tracer | undefined) => Promise; export declare const deviceIds$: import("rxjs").Observable | undefined; /** * Resolves `default` device id into the real device id. Some browsers (notably, * Chromium-based) report device with id `default` among audio input and output * devices. Since not every browser does that, we never want `default` id to be * used within our SDK. This function tries to find the real id for the `default` * device. */ export declare function resolveDeviceId(deviceId: string | undefined, kind: MediaDeviceKind): string | undefined;