import { ZegoUIKitUser, ZegoUIKitListener } from '../zego_uikit/src';
import { ZegoUIKitPrebuiltCallConfig, ZegoUIKitPrebuiltCallInvitationEvents, ZegoCallInvitationRole, ZegoCallInvitationType, PrebuiltListener } from './services/define';
export * from '../zego_uikit/src';
export * from './utils';
export * from './services/define';
export declare class ZegoUIKitPrebuiltCall {
    /**
     * 初始化rtc和zim
     * @param appID 客户的appID
     * @param server 客户的server地址，初始化rtc需要
     * @param userID 用户ID
     * @param userName 用户名
     * @param token 访问令牌, 生产环境需要服务器生成, 下发下来
     * @param config 配置选项（可选）
     * @param invitationEvents 客户监听事件
     * @returns 初始化结果
     */
    static init(appID: number, server: string, userID: string, userName: string, token: string, config?: ZegoUIKitPrebuiltCallConfig, invitationEvents?: ZegoUIKitPrebuiltCallInvitationEvents): Promise<boolean | undefined>;
    /**
     * 更新令牌。
     * @param token 令牌字符串。
     * @param roomID 房间ID（可选）。
     * @returns 如果更新令牌成功，则返回true；否则返回false。
     */
    static renewToken(token: string, roomID?: string): boolean;
    /**
     * 加入房间
     * @param callID 通话ID, 相同 callID 的人将进行聊天
     * @returns 加入房间结果
     */
    static joinRoom(callID: string): void;
    /**
     * 发送邀请
     * @param type 邀请类型
     * @param invitees 被邀请者列表
     * @param customData 自定义数据
     * @returns 发送邀请结果
     */
    static onInvitationSent(type: number, invitees: any[], customData?: string): void;
    /**
     * 退出房间，zim相关
     * @returns 退出房间结果
     */
    static leaveRoom(): void;
    /**
     * 退出房间，rtc相关
     * @returns 退出房间结果
     */
    static logoutRoom(): void;
    /**
     * 反初始化
     * @returns 反初始化结果
     */
    static unInit(): void;
    /**
     * 进行权限检查
     * @returns 权限检查结果
     */
    static authCheck(): Promise<boolean>;
    /**
     * 导航返回
     * @returns 导航返回结果
     */
    static navigateBack(): void;
    /**
     * 获取配置
     * @returns 配置
     */
    static getConfig(): ZegoUIKitPrebuiltCallConfig;
    /**
     * 获取当前角色，主叫者还是被叫者
     * @returns 当前角色
     */
    static getCurrentRole(): ZegoCallInvitationRole;
    /**
     * 获取当前用户信息
     * @returns 当前用户信息
     */
    static getLocalUser(): ZegoUIKitUser | null;
    /**
     * 获取 uikit 插件 zim
     * @returns uikit 插件 zim
     */
    static getSignalingPlugin(): import("../zego_uikit/src/service/internal/invitation/InvitationService").default;
    /**
     * 添加UIKit监听器
     * @param listenerID 监听器ID
     * @param listener 监听器
     */
    static addUIKitListener(listenerID: string, listener: ZegoUIKitListener): void;
    /**
     * 取消监听 uikit 回调事件
     * @param listenerID 监听器ID
     */
    static removeUIKitListener(listenerID: string): void;
    /**
     * 添加 Prebuilt 监听器
     * @param listenerID 监听器ID
     * @param listener 监听器
     */
    static addPrebuiltListener(listenerID: string, listener: PrebuiltListener): void;
    /**
     * 取消监听 Prebuilt 回调事件
     * @param listenerID 监听器ID
     */
    static removePrebuiltListener(listenerID: string): void;
    /**
     * 监听来电取消事件
     * @param callID 通话ID
     * @param caller 呼叫者
     * @param customData 自定义数据
     * @returns 监听结果
     */
    static onIncomingCallCanceled(callID: string, caller: ZegoUIKitUser, customData: string): void;
    /**
     * 监听来电接听按钮按下事件
     * @returns 监听结果
     */
    static onIncomingCallAcceptButtonPressed(): void;
    /**
     * 监听来电拒绝按钮按下事件
     * @returns 监听结果
     */
    static onIncomingCallDeclineButtonPressed(): void;
    /**
     * 监听外呼被接受事件
     * @param callID 通话ID
     * @param calleeID 被叫者ID
     * @returns 监听结果
     */
    static onOutgoingCallAccepted(callID: string, calleeID: string): void;
    /**
     * 监听外呼取消按钮按下事件
     * @returns 监听结果
     */
    static onOutgoingCallCancelButtonPressed(): void;
    /**
     * 结束通话时，呼叫者收到通知
     * @param callID 通话ID
     * @param roomID 房间ID
     */
    static onCallEnded(callID: string, roomID: string): void;
    /**
     * 发起通话邀请
     * @param params 通话邀请参数
     * @returns 接口调用结果
     */
    static sendCallInvitation(params: {
        callees: ZegoUIKitUser[];
        callType: ZegoCallInvitationType;
        customData?: string;
        timeout?: number;
        roomID?: string;
    }): Promise<{
        code: number;
        callID: string;
        timeout: number;
        errorUserList: {
            userID: string;
            reason: number;
        }[];
        customData: string;
    }>;
}
