import { Emoji, GroupKey, Hexcode, Locale, MessagesDataset, SkinToneKey, SubgroupKey } from 'emojibase';
import { CanonicalEmoji } from './types';
export declare function resetInstances(): void;
export declare class EmojiDataManager {
    EMOJIS: Record<string, CanonicalEmoji>;
    EMOTICON_TO_HEXCODE: Record<string, Hexcode>;
    SHORTCODE_TO_HEXCODE: Record<string, Hexcode>;
    UNICODE_TO_HEXCODE: Record<string, Hexcode>;
    GROUPS_BY_KEY: Partial<Record<GroupKey, string>>;
    SKIN_TONES_BY_KEY: Partial<Record<SkinToneKey, string>>;
    SUBGROUPS_BY_KEY: Partial<Record<SubgroupKey, string>>;
    data: CanonicalEmoji[];
    flatData: CanonicalEmoji[];
    locale: Locale;
    version: string;
    constructor(locale: Locale, version: string);
    /**
     * Return or create a singleton instance per locale.
     */
    static getInstance(locale: Locale, version: string): EmojiDataManager;
    /**
     * Return dataset as a list.
     */
    getData(): CanonicalEmoji[];
    /**
     * Return dataset as a flattened list.
     */
    getFlatData(): CanonicalEmoji[];
    /**
     * Package the emoji object with additional data,
     * while also extracting and partitioning relevant information.
     */
    packageEmoji(baseEmoji: Emoji): CanonicalEmoji;
    /**
     * Parse and generate emoji datasets.
     */
    parseEmojiData(data: Emoji[]): CanonicalEmoji[];
    parseMessageData(data: MessagesDataset): void;
}
//# sourceMappingURL=EmojiDataManager.d.ts.map