import { ENUM_MEDIA_TYPE, ENUM_MIX_LAYOUT, ENUM_MIX_OUTPUT_MODE, ENUM_MIX_STREAM_ADD_MODE, ENUM_WATER_MARK_POSITION, ENUM_WATER_MARK_TYPE } from './enum'; import { BackgroundColorOptions, H264Quality, MixAudioCodec, MixVideoCodec, StartRecordOptions, StartRelayOptions, UpdateRecordOptions, UpdateRelayOptions } from './interfaces'; /** * @internal */ export declare enum ENUM_MIX_TYPE { relay = 1, record = 2, relayRecord = 3, update = 4 } /** * @internal */ export interface InnerMixStream { user_id: string; media_type: ENUM_MEDIA_TYPE; } /** * @internal */ export interface InnerMixOptions { bucket?: string; region?: string; pushurl?: string[]; layout: ENUM_MIX_LAYOUT; custom?: Record[]; layouts?: ENUM_MIX_LAYOUT[]; audiocodec: MixAudioCodec; bgColor?: BackgroundColorOptions; framerate?: number; bitrate?: number; videocodec: MixVideoCodec; qualitylevel?: H264Quality; mainviewuid?: string; mainviewtype?: ENUM_MEDIA_TYPE; width: number; height: number; watertype?: ENUM_WATER_MARK_TYPE; waterpos?: ENUM_WATER_MARK_POSITION; waterurl?: string; mimetype?: ENUM_MIX_OUTPUT_MODE; addstreammode: ENUM_MIX_STREAM_ADD_MODE; expand?: { taskTimeout: number; }; layoutUserlimit?: number; keyuser?: string; } /** * @internal */ export interface InnerUpdateMixOptions { pushurl?: string[]; layout: ENUM_MIX_LAYOUT | -1; custom?: Record[]; layouts?: ENUM_MIX_LAYOUT[]; mainviewuid?: string; mainviewtype?: ENUM_MEDIA_TYPE; watertype: ENUM_WATER_MARK_TYPE | -1; waterpos?: ENUM_WATER_MARK_POSITION; waterurl?: string; addstreammode: ENUM_MIX_STREAM_ADD_MODE | -1; layoutUserlimit?: number; keyuser?: string; } /** * @internal */ export interface InnerMixResult { mix_id: string; room_id: string; user_id: string; } /** * @internal */ export interface InnerStartMixResult extends InnerMixResult { filename: string; } /** * @internal */ export declare type InnerStopMixResult = InnerMixResult; /** * @internal */ export interface InnerQueryMixResult { filename: string; mix_id: string; type: ENUM_MIX_TYPE; } /** * @internal */ export interface InnerMixNotify { err: number; method: string; methodtype: string; msg: string; msg_id: number; data: { mix_id: string; room_id: string; user_id: string; filename?: string; pushurl?: string[]; }; } /** * @internal */ export declare function extractInnerMixOptions(options: StartRecordOptions | StartRelayOptions): InnerMixOptions; /** * @internal */ export declare function extractInnerUpdateMixOptions(options: UpdateRecordOptions | UpdateRelayOptions): InnerUpdateMixOptions; /** * @internal */ export declare function extractInnerMixStreams(options: StartRecordOptions | StartRelayOptions | UpdateRecordOptions | UpdateRelayOptions): InnerMixStream[];