export declare const REC_AUDIO_ENABLE: (config?: RecordConfig | undefined) => boolean; export declare const REC_VIDEO_ENABLE: (config?: RecordConfig | undefined) => boolean; export declare const REC_SCREEN_ENABLE: (config?: RecordConfig | undefined) => boolean; /** * 传输优化模式 * "motion": 流畅优先,遭遇网络波动时,发送端会降低码率来确保接收端的视频画面不会出现中断和卡顿。 * "detail": 清晰优先,遭遇网络波动时,可能会采取适当降低帧率等方法,确保清晰的视频画面。 * 如果不设置,表示浏览器根据自身算法确定模式。 */ export declare type OptimizationMode = "motion" | "detail"; export interface RecordConfig { audio?: { enabled: boolean; /** * track 模式下可以指定 tag */ tag?: string; /** * 传入 deviceId 代表使用指定的 device 采集 * device 列表可以使用 deviceManager 来获取 */ deviceId?: string; /** * 自定义 source,传入此配置将不会从麦克风中采集 * 而是使用提供的 source */ source?: string | File | AudioBuffer; bitrate?: number; sampleRate?: number; sampleSize?: number; channelCount?: number; autoGainControl?: boolean; echoCancellation?: boolean; noiseSuppression?: boolean; }; video?: { enabled: boolean; /** * track 模式下可以指定 tag */ tag?: string; deviceId?: string; frameRate?: number; height?: ConstraintNumber; width?: ConstraintNumber; bitrate?: number; facingMode?: ConstrainDOMString; optimizationMode?: OptimizationMode; }; screen?: RecordScreenConfig; } export interface RecordScreenConfig { enabled: boolean; /** * track 模式下可以指定 tag */ tag?: string; width?: ConstraintNumber; height?: ConstraintNumber; frameRate?: number; bitrate?: number; source?: "window" | "screen"; audio?: boolean | any; audioTag?: string; forceChromePlugin?: boolean; optimizationMode?: OptimizationMode; } export declare type ConstraintNumber = number | NumberRange; export interface NumberRange { max?: number; min?: number; exact?: number; ideal?: number; } /** * Note that "display-capture"(code value is 2) is the name for screen display permission, * but it is not supported now */ export declare enum PermissionNameCode { camera = 0, microphone = 1 } export declare type QosPermissionName = keyof typeof PermissionNameCode; export declare enum PermissionStateCode { prompt = 1, denied = 2, granted = 3 } export declare type PermissionState = keyof typeof PermissionStateCode;