import { CSSProperties, ReactNode } from 'react';
import { CenterProps } from 'react-layout-kit';
import { type AvatarUploaderProps } from './AvatarUploader';
export interface CustomEmoji {
    emojis: [
        {
            id: string;
            keywords?: string[];
            name: string;
            skins: {
                src: string;
            }[];
        }
    ];
    id: string;
    name: string;
}
export interface CustomTab {
    label: ReactNode;
    render: (handleAvatarChange: (avatar: string) => void) => ReactNode;
    value: string;
}
export interface EmojiPickerProps extends Omit<CenterProps, 'onChange'> {
    allowDelete?: boolean;
    allowUpload?: boolean;
    backgroundColor?: string;
    compressSize?: number;
    customEmojis?: CustomEmoji[];
    customTabs?: CustomTab[];
    defaultAvatar?: string;
    loading?: boolean;
    locale?: string;
    onChange?: (emoji: string) => void;
    onDelete?: () => void;
    onUpload?: AvatarUploaderProps['onUpload'];
    popupClassName?: string;
    popupStyle?: CSSProperties;
    size?: number;
    texts?: AvatarUploaderProps['texts'] & {
        delete?: string;
        emoji?: string;
        upload?: string;
    };
    value?: string;
}
declare const EmojiPicker: import("react").NamedExoticComponent<EmojiPickerProps>;
export default EmojiPicker;
