import { AllHTMLAttributes } from 'react';
import { T as Themes } from '../constants-QFINMz1u.js';
import { EmojisSets, SkinTone, Categories, Locales, Positions, SearchPositions, SkinTonePositions, Version } from './EmojiPicker.constants.js';

type EmojisCategory = {
    emojis: Array<Emoji>;
    id: string;
    name: string;
};
type Emoji = {
    id: string;
    name: string;
    native: string;
    shortcodes: string;
    unified: string;
    emoticons?: Array<string>;
    keywords?: Array<string>;
};
interface EmojiPickerProps extends Omit<AllHTMLAttributes<HTMLDivElement>, 'onSelect'> {
    set: `${EmojisSets}`;
    skinTone: SkinTone;
    autoFocus?: boolean;
    categories?: Array<`${Categories}`>;
    custom?: Array<EmojisCategory>;
    customIcon?: Record<string, {
        src: string;
    } | {
        svg: string;
    }>;
    exclude?: Array<string>;
    frequentsRowNumber?: number;
    locale?: `${Locales}`;
    navPosition?: `${Positions}` | false;
    perLine?: number;
    previewPosition?: `${Positions}` | false;
    search?: string;
    searchPosition?: `${SearchPositions}` | false;
    skinTonePosition?: `${SkinTonePositions}` | false;
    theme?: Themes;
    version?: Version;
    onClickOutside?: () => void;
    onSelect?: (emoji: Emoji) => void;
}
interface EmojiProps extends Omit<AllHTMLAttributes<HTMLDivElement>, 'size'> {
    set: `${EmojisSets}`;
    id?: string;
    native?: string;
    shortCode?: string;
    skinTone?: SkinTone;
}

export type { Emoji, EmojiPickerProps, EmojiProps, EmojisCategory };
