import { CometChat } from "@cometchat/chat-sdk-react-native";
import { UIKitSettings } from "./UIKitSettings";
import { ExtensionsDataSource } from "../framework";
import { CometChatSoundManager } from "../utils";
import { CometChatLocalize } from "../resources";
import { CardMessage, CustomInteractiveMessage, FormMessage } from "../modals/InteractiveData";
import { AIExtensionDataSource } from "../../AI/AIExtensionDataSource";
import { SchedulerMessage } from "../modals/InteractiveData/InteractiveMessage";
export declare class CometChatUIKit {
    static uiKitSettings: UIKitSettings;
    static aiFeatures: AIExtensionDataSource[];
    static loggedInUser: null | CometChat.User;
    private static loginListenerID;
    private static isLoginListenerAttached;
    static init(uiKitSettings: UIKitSettings): Promise<boolean>;
    static defaultExtensions: ExtensionsDataSource[];
    static defaultAIFeatures: AIExtensionDataSource[];
    private static attachListener;
    private static enableExtensions;
    static getLoggedInUser(): Promise<CometChat.User>;
    private static setLoggedInUser;
    private static removeLoggedInUser;
    private static removeListener;
    static login({ uid, authToken }: {
        uid?: string;
        authToken?: string;
    }): Promise<CometChat.User>;
    static logout(): Promise<Object>;
    static createUser(user: CometChat.User): Promise<CometChat.User>;
    static updateUser(user: CometChat.User): Promise<CometChat.User>;
    static checkAuthSettings(onError: (e: CometChat.CometChatException) => void): boolean;
    static sendCustomMessage(message: CometChat.CustomMessage): Promise<CometChat.CustomMessage | CometChat.BaseMessage>;
    static sendMediaMessage(message: CometChat.MediaMessage): Promise<CometChat.MediaMessage | CometChat.BaseMessage>;
    static sendTextMessage(message: CometChat.TextMessage): Promise<CometChat.TextMessage | CometChat.BaseMessage>;
    /**
   * Sends a Scheduler message and emits events based on the message status.
   * @param message - The Scheduler message to be sent.
   * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.
   */
    static sendSchedulerMessage(message: SchedulerMessage, disableLocalEvents?: boolean): Promise<CometChat.TextMessage | CometChat.BaseMessage>;
    /**
   * Sends a FormMessage message and emits events based on the message status.
   * @param message - The FormMessage message to be sent.
   * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.
   */
    static sendFormMessage(message: FormMessage, disableLocalEvents?: boolean): Promise<CometChat.TextMessage | CometChat.BaseMessage>;
    /**
   * Sends a Card message and emits events based on the message status.
   * @param message - The Card message to be sent.
   * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.
   */
    static sendCardMessage(message: CardMessage, disableLocalEvents?: boolean): Promise<CometChat.TextMessage | CometChat.BaseMessage>;
    /**
   * Sends a Custom Interactive message and emits events based on the message status.
   * @param message - The Custom Interactive message to be sent.
   * @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.
   */
    static sendCustomInteractiveMessage(message: CustomInteractiveMessage, disableLocalEvents?: boolean): Promise<CometChat.TextMessage | CometChat.BaseMessage>;
    static getDataSource(): import("../framework").DataSource;
    static SoundManager: typeof CometChatSoundManager;
    static Localize: typeof CometChatLocalize;
}
