import { RenderTarget } from "src/core/types"; import { IOnBeCallParams, IOpenParams } from "../callEndPoint"; export declare namespace MediaEndPointUtils { function openUserMedia({ video, audio, }?: { video?: boolean; audio?: boolean; }): Promise; } declare enum EMediaEndPointCode { GET_MEDIA = "GET_MEDIA", CREATE_LOCALE_SDP = "CREATE_LOCALE_SDP", SET_LOCAL_SDP = "SET_LOCAL_SDP", POST_SDP = "POST_SDP", GET_REMOTE_SDP = "GET_REMOTE_SDP", SET_REMOTE_SDP = "SET_REMOTE_SDP", CREATE_VIDEO_ELE = "CREATE_VIDEO_ELE", WAIT_TRACK = "WAIT_TRACK", WAIT_PEER_CONNECTED = "WAIT_PEER_CONNECTED", BUSY = "BUSY" } type MediaEndPointCode = `${EMediaEndPointCode}_ERROR` | "SUCCESS"; export interface IOpenResult { code: MediaEndPointCode; message?: string; } export interface IOpenRemoteParams { id: string; channel: number; container: RenderTarget; hasVideo?: boolean; events: IEventsHandle; hasNoAudio?: boolean; } export type IPushResult = IOpenResult & { streamIdInfo?: { id: string; index: number; mediaStream: MediaStream; dialogId: string; hasVideo: boolean; hasAudio: boolean; duration?: number; }; close?: () => Promise; }; export type ISinkPCInfo = Exclude["openRemote"]>[1], undefined>; export type IEventsHandle = { onStatusChange?: (status: "CONNECTEDING" | "CONNECTED") => void; onClose?: () => void; }; type TSinkInfos = { pcInfo: (pcInfo: { currentTime: number; videoWidth?: number; videoHeight?: number; }) => void; }; export declare function MediaEndPoint(params: { token: string; }): { open(openParams: { container?: RenderTarget; videoEle?: HTMLVideoElement; beCall?: IOnBeCallParams; call?: IOpenParams; events?: IEventsHandle; disableAudio?: boolean; }, sinks?: TSinkInfos): Promise Promise) | undefined; push?: (() => Promise) | undefined; }>; openRemote(info: IOpenRemoteParams, sinks?: TSinkInfos): Promise Promise) | undefined; }>; }; export {};