import { ConversationSelector, CreateChatOptions, Delegate, IMSdkEnv, SendAttachmentMessageOption, SendTextMessageOption, UserInfo } from "../types";
import ConversationViewModel from "packages/ui/ConversationViewModel";
import { LogMode } from "../lib";
declare class IMSdk {
    private static instance;
    static env: IMSdkEnv;
    static ak: string;
    private authCode;
    private auid;
    private delegate;
    constructor(ak: string, env: IMSdkEnv);
    static setLogMode(mode: LogMode): void;
    private init;
    setAuthCode(authCode: string): void;
    setUserInfo(userInfos: UserInfo[]): void;
    /**
     * get sdk instance
     * @param ak user auid
     * @param env environment. "alpha": test environment, "pro": formal environment
     * @returns
     */
    static getInstance(ak?: string, env?: IMSdkEnv): IMSdk;
    setDelegate(delegate: Delegate): void;
    getDelegate(): Delegate | undefined;
    handleAuthCodeExpire(): void;
    createChat(options: CreateChatOptions): Promise<void>;
    /**
     * user login
     * @param auid
     */
    initUser(auid: string): Promise<void>;
    /**
     * send text message
     * @param options
     */
    sendTextMessage({ content, aChatId, amid }: SendTextMessageOption): void;
    /**
     * send image message
     * @param options
     */
    sendImageMessage({ data, aChatId, amid }: SendAttachmentMessageOption): Promise<void>;
    /**
     * send attachment message
     * @param options
     */
    sendAttachmentMessage({ data, aChatId, amid }: SendAttachmentMessageOption): Promise<void>;
    disableCardMessage(amid: string, buttonIds: string[]): Promise<void>;
    /**
     * log out
     */
    loginOut(): void;
    /**
     * create conversation viewModel
     * @param selector
     */
    createConversationViewModel(selector?: ConversationSelector): ConversationViewModel;
    setConversationSubTitle({ subTitles }: {
        subTitles: {
            aChatId: string;
            subTitle: string;
        }[];
    }): void;
    setConversationMarker({ markers }: {
        markers: {
            aChatId: string;
            icon: string;
        }[];
    }): void;
    setConversationMute(aChatId: string, isMute: boolean): void;
}
export default IMSdk;
