import { RoomType } from 'tuikit-atomicx-vue3/room';
import { RoomEvent, StartOptions, JoinOptions, IConference, ComponentName, ComponentConfig } from './type';
import { default as TUIRoomEngine } from '@tencentcloud/tuiroom-engine-js';

declare class Conference implements IConference {
    private componentConfig;
    login(params: {
        sdkAppId: number;
        userId: string;
        userSig: string;
        tim?: any;
    }): any;
    logout(): Promise<any>;
    getRoomEngine(): {
        instance: TUIRoomEngine;
    } | null;
    on(eventType: RoomEvent, callback: (data?: any) => void): void;
    off(eventType: RoomEvent, callback: (data?: any) => void): void;
    start({ roomId, roomType, options }: {
        roomId: string;
        roomType?: RoomType;
        options?: StartOptions;
    }): Promise<void>;
    join({ roomId, roomType, options }: {
        roomId: string;
        roomType?: RoomType;
        options?: JoinOptions;
    }): Promise<void>;
    leave(): Promise<void>;
    dismiss(): Promise<void>;
    setSelfInfo(options: {
        userName: string;
        avatarUrl: string;
    }): any;
    setComponentConfig(config: ComponentConfig): void;
    getComponentConfig(name: ComponentName): ComponentConfig | undefined;
}
export declare const conference: Conference;
export {};
