import { Observable } from 'rxjs'; import { Call } from '../Call'; import { CameraDirection, CameraManagerState } from './CameraManagerState'; import { DeviceManager } from './DeviceManager'; import { VideoSettingsResponse } from '../gen/coordinator'; import { DevicePersistenceOptions } from './devicePersistence'; export declare class CameraManager extends DeviceManager { private targetResolution; /** * Constructs a new CameraManager. * * @param call the call instance. * @param devicePersistence the device persistence preferences to use. */ constructor(call: Call, devicePersistence: Required); private isDirectionSupportedByDevice; /** * Select the camera direction. * * @param direction the direction of the camera to select. * @param options additional direction selection options. */ selectDirection(direction: Exclude, options?: { enableCamera?: boolean; }): Promise; /** * Flips the camera direction: if it's front it will change to back, if it's back, it will change to front. * * Note: if there is no available camera with the desired direction, this method will do nothing. * @returns */ flip(): Promise; /** * @internal */ selectTargetResolution(resolution: { width: number; height: number; }): Promise; /** * Applies the video settings to the camera. * * @param settings the video settings to apply. * @param publish whether to publish the stream after applying the settings. */ apply(settings: VideoSettingsResponse, publish: boolean): Promise; protected getDevices(): Observable; protected getStream(constraints: MediaTrackConstraints): Promise; }