import { ChatSDK } from '@tencentcloud/chat';
import { StartParams, JoinParams, LanguageOption } from './services';
import { TUIRoomEngine } from './index';

export declare enum RoomEvent {
    ROOM_START = "RoomStart",
    ROOM_JOIN = "RoomJoin",
    ROOM_LEAVE = "RoomLeave",
    ROOM_DISMISS = "RoomDestroy",
    ROOM_ERROR = "RoomError",
    KICKED_OUT = "KickedOut",
    KICKED_OFFLINE = "KickedOffline",
    USER_SIG_EXPIRED = "UserSigExpired",
    USER_LOGOUT = "UserLogout",
    LANGUAGE_CHANGED = "LanguageChanged",
    THEME_CHANGED = "ThemeChanged"
}
export declare enum FeatureButton {
    SwitchTheme = "SwitchTheme",
    SwitchLayout = "LayoutControl",
    SwitchLanguage = "Language",
    FullScreen = "FullScreen",
    Invitation = "InviteControl"
}
export type ThemeOption = 'LIGHT' | 'DARK';
interface IConference {
    getRoomEngine(): TUIRoomEngine | null;
    on: (eventType: RoomEvent, callback: (data?: LanguageOption | ThemeOption | any) => void) => void;
    off: (eventType: RoomEvent, callback: (data?: LanguageOption | ThemeOption | any) => void) => void;
    login: (params: {
        sdkAppId: number;
        userId: string;
        userSig: string;
        tim?: ChatSDK;
    }) => Promise<void>;
    logout: () => Promise<void>;
    start: (roomId: string, params: StartParams) => Promise<void>;
    join: (roomId: string, params: JoinParams) => Promise<void>;
    leave: () => Promise<void>;
    dismiss: () => Promise<void>;
    setSelfInfo: (options: {
        userName: string;
        avatarUrl: string;
    }) => Promise<void>;
    setLanguage: (language: LanguageOption) => void;
    setTheme: (theme: ThemeOption) => void;
    disableTextMessaging: () => void;
    disableScreenSharing: () => void;
    enableWatermark: () => void;
    enableVirtualBackground: () => void;
    enableBasicBeauty: () => void;
    hideFeatureButton: (name: FeatureButton) => void;
    replaceFriendList: (userList: Array<any>) => void;
}
declare class Conference implements IConference {
    login(params: {
        sdkAppId: number;
        userId: string;
        userSig: string;
        tim?: ChatSDK;
    }): Promise<void>;
    logout(): Promise<void>;
    getRoomEngine(): TUIRoomEngine | null;
    on(eventType: RoomEvent, callback: (data?: LanguageOption | ThemeOption | any) => void): void;
    off(eventType: RoomEvent, callback: (data?: LanguageOption | ThemeOption | any) => void): void;
    start(roomId: string, params?: StartParams): Promise<void>;
    join(roomId: string, params?: JoinParams): Promise<void>;
    leave(): Promise<void>;
    dismiss(): Promise<void>;
    setSelfInfo(options: {
        userName: string;
        avatarUrl: string;
    }): Promise<void>;
    setLanguage(language: LanguageOption): void;
    setTheme(theme: ThemeOption): void;
    disableTextMessaging(): void;
    disableScreenSharing(): void;
    enableWatermark(): void;
    enableVirtualBackground(): void;
    enableBasicBeauty(): void;
    hideFeatureButton(name: FeatureButton): void;
    replaceFriendList(userList: Array<any>): void;
}
export declare const conference: Conference;
export {};
