import { Themes } from "../../constants.js";
import { Categories, EmojisSets, Locales, Positions, SearchPositions, SkinTone, SkinTonePositions, Version } from "./EmojiPicker.constants.js";
import { AllHTMLAttributes } from "react";

//#region src/components/EmojiPicker/EmojiPicker.types.d.ts
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;
}
//#endregion
export { Emoji, EmojiPickerProps, EmojiProps, EmojisCategory };
//# sourceMappingURL=EmojiPicker.types.d.ts.map