import { BaseMessage, CometChat } from "@cometchat/chat-sdk-javascript";
interface MessageExtensionType {
    hasXSS?: string;
    sanitized_text?: string;
    data?: {
        sensitive_data: string;
        message_masked: string;
    };
    profanity?: string;
    message_clean?: string;
}
/**
  * Utility class for CometChat UIKit, providing various helper methods
  * such as deep cloning, ID generation, Unix timestamp retrieval,
  * and message extension data handling.
  */
export declare class CometChatUIKitUtility {
    /**
     * Creates a deep copy of the value provided
     *
     * @remarks
     * This function cannot copy truly private properties (those that start with a "#" symbol inside a class block).
     * Functions are copied by reference and additional properties on the array objects are ignored
     *
     * @param arg - Any value
     * @returns A deep copy of `arg`
     */
    static clone<T>(arg: T): T;
    /**
     * Checks if an object has a specific property.
     *
     * @param obj - The object to check.
     * @param key - The property key.
     * @returns `true` if the property exists, `false` otherwise.
     */
    static checkHasOwnProperty: (obj: object | undefined, key: string) => boolean;
    /**
     * Generates a unique ID.
     *
     * @returns A unique string identifier.
     */
    static ID: () => string;
    /**
     * Retrieves the current Unix timestamp.
     *
     * @returns The Unix timestamp.
     */
    static getUnixTimestamp: () => number;
    /**
     * Retrieves the extension data from a message.
     *
     * @param messageObject - The message object containing extensions.
     * @returns The sanitized message text if available, otherwise the original text.
     */
    static getExtensionData(messageObject: CometChat.BaseMessage): string;
    /**
     * Checks for extension data in a message.
     *
     * @param message - The message object to check.
     * @param extensionKey - The extension key to look for.
     * @returns The extension data if found.
     */
    static checkMessageForExtensionsData: (message: CometChat.BaseMessage | null, extensionKey: string) => (object & MessageExtensionType) | undefined;
    /**
     * Sanitizes an HTML string by escaping tags not matching the whitelist.
     *
     * @param htmlString - The HTML string to sanitize.
     * @param whitelistRegExes - A list of regular expressions to match allowed tags.
     * @returns The sanitized HTML string.
     */
    static sanitizeHtml(htmlString: string, whitelistRegExes: RegExp[]): string;
    static convertBlobToWav: (audioBlob: {
        arrayBuffer: () => any;
    }) => Promise<{
        wavBlob: Blob;
    }>;
    static audioBufferToWav: (audioBuffer: AudioBuffer) => ArrayBuffer;
    static writeString: (view: DataView, offset: number, string: string) => void;
    static convertToWav: (audioBlob: Blob) => Promise<string>;
}
export {};
