import { BloudStream } from './Stream';
import { VloudParticipant } from './type';
import { ReportStats } from './stats';
export interface BloudRloud {
    Room(options: BloudRoomOptions): BloudClient;
    SharingStream(options: any): BloudStream;
}
export interface BloudClient {
    getID(): string;
    changeMaster(masterId: string): any;
    getCreator(): any;
    getName(): any;
    evictUser2(userId: string): any;
    updateUser(target: string, info: any): any;
    getClient(): any;
    getLocalParticipant(): VloudParticipant;
    connect(options?: {
        device?: string;
        version?: string;
        platform?: string;
        network?: string;
        role?: string;
    }, sessionId?: string): Promise<{
        sessionId: string;
        callId: string;
    }>;
    leave(): Promise<any>;
    addEventListener(event: string, handler: Function): void;
    on(event: string, handler: Function): void;
    removeEventListener(event: string, handler: Function): void;
    removeAllListeners(event?: string): void;
    close(): void;
    renewToken(token: string): Promise<any>;
    collectStats(streamId: string, stats: ReportStats, isLocal: boolean, remoteId?: string): void;
    reportAction(type: string, error: boolean, sendTs?: number, receiveTs?: number, options?: string[]): void;
}
/**
 * @internal
 */
export declare type BloudRoomOptions = {
    /**
     * 房间 id
     */
    room: string;
    /**
     * user id
     */
    user: string;
    /**
     * 房间 name
     */
    name?: string;
    /**
     * 用户名
     */
    nickname?: string;
    /**
     * 是否上报音视频数据
     */
    enableCollection?: boolean;
    /**
     * 是否强制使用 WebSocket 作为信令通道
     */
    forceWS?: boolean;
    /**
     * roomServer 列表
     */
    proxies?: Proxies[];
};
export declare type Proxies = {
    /**
     * datachannel url 用于交换 sdp
     */
    dcurl: string;
    delay: string;
    /**
     * 节点地区
     */
    location: string;
    /**
     * ws url
     */
    url: string;
};
export declare type EventType = {
    eventName: string;
    callback: Function;
};
