import { Extension } from '@tiptap/core';
export interface EmojiCategory {
    id: string;
    name: string;
    icon: string;
    emojis: Emoji[];
}
export interface Emoji {
    id: string;
    emoji: string;
    name: string;
    keywords: string[];
    category: string;
    skin_tones?: string[];
}
export interface CustomEmoji extends Emoji {
    url: string;
    animated?: boolean;
}
export interface EmojiPickerOptions {
    categories: EmojiCategory[];
    customEmojis: CustomEmoji[];
    recentEmojis: string[];
    maxRecent: number;
    showCategories: boolean;
    showSearch: boolean;
    showSkinTones: boolean;
    onEmojiSelect: (emoji: Emoji | CustomEmoji) => void;
    onCustomEmojiUpload?: (file: File) => Promise<CustomEmoji>;
}
declare module '@tiptap/core' {
    interface Commands<ReturnType> {
        emojiPicker: {
            /**
             * Insert an emoji
             */
            insertEmoji: (emoji: string) => ReturnType;
            /**
             * Insert a custom emoji
             */
            insertCustomEmoji: (customEmoji: CustomEmoji) => ReturnType;
            /**
             * Open emoji picker
             */
            openEmojiPicker: () => ReturnType;
        };
    }
}
export declare const EmojiPickerExtension: Extension<EmojiPickerOptions, any>;
export declare const defaultEmojiCategories: EmojiCategory[];
export declare function searchEmojis(query: string, categories: EmojiCategory[]): Emoji[];
export default EmojiPickerExtension;
//# sourceMappingURL=EmojiPickerExtension.d.ts.map