import { ZIMAdapter } from "../../ZIMAdapter";
import { ZIMEventOfConnectionStateChangedResult } from "../../ZIMAdapter/index.entity";
import { ZIMKitEventHandlerInterface } from "./ZIMKitEventHandler";
import { ZIMKitUserInfoModel } from '../../ZIMKitUser/Model';
declare enum networkStatus {
    online = 1,
    offline = 0
}
export default class ZIMKitManager {
    static instance: ZIMKitManager;
    userInfo: ZIMKitUserInfoModel;
    zim: ZIMAdapter;
    token: string;
    isInit: boolean;
    isLoggedIn: number;
    networkStatus: networkStatus;
    constructor();
    static getInstance(): ZIMKitManager;
    init(appID: number): Promise<void>;
    connectUser(userInfo: ZIMKitUserInfoModel, token: string): Promise<void>;
    updateUserAvatarUrl(userAvatarUrl: string): Promise<void>;
    generateKitTokenForTest(appID: number, serverSecret: string, userID: string): string;
    createGroup(groupName: string, userIDList: string[]): Promise<any>;
    joinGroup(groupID: string): Promise<any>;
    disconnectUser(): void;
    on<K extends keyof ZIMKitEventHandlerInterface>(type: string, callback: (data: any) => void): void;
    off<K extends keyof ZIMKitEventHandlerInterface>(type: string, callback: (data: any) => void): void;
    destroy(): void;
    uploadLog(): Promise<void>;
    registerConnectionStateChangedCallback(callback: (data: ZIMEventOfConnectionStateChangedResult) => void): void;
    removeConnectionCallback(callback: (data: ZIMEventOfConnectionStateChangedResult) => void): void;
    registerLoginStateChangedCallback(callback: (state: number) => void): void;
    removeLoginStateChangedCallback(callback: (state: number) => void): void;
    private onEvent;
    private offEvent;
}
export {};
