import { DataSource } from "../../../utils/DataSource";
import { DataSourceDecorator } from "../../../utils/DataSourceDecorator";
import { ComposerId } from "../../../utils/MessagesDataSource";
import { CometChatMessageTemplate } from "../../../modals";
/**
 * Class responsible for decorating the data source with sticker-related functionalities.
 * Extends the DataSourceDecorator to add custom message templates, auxiliary options, and sticker-specific logic.
 */
export declare class StickersExtensionDecorator extends DataSourceDecorator {
    /**
    * New data source for the extension.
    */
    newDataSource: DataSource;
    /**
     * Flag to show or hide the sticker keyboard.
     * @default false
     */
    showStickerKeyboard: boolean;
    private id;
    private user?;
    private group?;
    /**
     * Constructs a new instance of StickersExtensionDecorator.
     * @param dataSource - The data source to be decorated.
     * @param configuration - Optional configuration for the stickers extension.
     */
    constructor(dataSource: DataSource);
    /**
     * Gets the decorated data source.
     * @returns The decorated data source.
     */
    getDataSource(): DataSource;
    /**
     * Retrieves all message templates, including the sticker template if it doesn't already exist.
     * @param additionalConfigurations - Additional configurations, if any.
     * @returns An array of CometChatMessageTemplate objects.
     */
    getAllMessageTemplates(additionalConfigurations?: any): CometChatMessageTemplate[];
    /**
     * Retrieves auxiliary options for the stickers extension.
     * @param id - A map containing relevant IDs.
     * @param theme - The theme object for styling.
     * @param user - Optional user object.
     * @param group - Optional group object.
     * @returns An array of auxiliary options.
     */
    getStickerButton(id: ComposerId, user?: CometChat.User, group?: CometChat.Group): import("react/jsx-runtime").JSX.Element;
    /**
     * Creates the sticker auxiliary button component.
     * @param id - A map containing relevant IDs.
     * @param theme - The theme object for styling.
     * @param user - Optional user object.
     * @param group - Optional group object.
     * @returns The JSX element for the sticker auxiliary button.
     */
    getStickerAuxiliaryButton: (id: ComposerId, user?: CometChat.User, group?: CometChat.Group) => import("react/jsx-runtime").JSX.Element;
    /**
     * Sends a sticker message.
     * @param event - The event object containing sticker details.
     */
    sendSticker(event: any, closeSticker: Function): void;
    /**
     * Sends a sticker message.
     * @param event - The event object containing sticker details.
     */
    getSticker(message: CometChat.CustomMessage): any;
    /**
     * Creates a JSX element for displaying the sticker message content.
     * @param stickerMessage - The custom message containing sticker data.
     * @param _theme - The theme object for styling.
     * @returns The JSX element for the sticker message content.
     */
    getStickerMessageContentView(stickerMessage: CometChat.CustomMessage): import("react/jsx-runtime").JSX.Element;
    /**
     * Creates a sticker message template.
     * @param _theme - The theme object for styling.
     * @returns The sticker message template.
     */
    getStickerTemplate(): CometChatMessageTemplate;
    /**
     * Checks if a specific message template already exists.
     * @param template - An array of message templates.
     * @param type - The type of message template to check for.
     * @returns True if the template exists, false otherwise.
     */
    checkIfTemplateExist(template: CometChatMessageTemplate[], type: string): boolean;
    /**
     * Retrieves all message categories, including custom categories.
     * @returns An array of message categories.
     */
    getAllMessageCategories(additionalConfigurations?: Object | undefined): string[];
    /**
     * Retrieves all message types, including sticker types.
     * @returns An array of message types.
     */
    getAllMessageTypes(): string[];
    /**
     * Retrieves the ID of the sticker extension.
     * @returns The ID string.
     */
    getId(): string;
    /**
     * Retrieves the last message in a conversation, checking for sticker messages.
     * @param conversation - The conversation object.
     * @param loggedInUser - The logged-in user.
     * @param additionalConfigurations - Additional configurations, if any.
     * @returns A string representing the last message.
     */
    getLastConversationMessage(conversation: CometChat.Conversation, loggedInUser: CometChat.User, additionalConfigurations?: any): string;
}
