import { AllowedComponentProps, VNodeProps } from '../common' declare interface Emoji { key: string char: string name: string category: string url?: string type: 'unicode' | 'image' code?: string keywords?: string[] } declare interface EmojiCategory { id: string name: string icon: string order: number } declare interface EmojiPickerProps { // 显示控制 visible?: boolean theme?: 'light' | 'dark' | 'card' size?: 'small' | 'medium' | 'large' // 数据源 emojis?: Emoji[] categories?: EmojiCategory[] recentEmojis?: Emoji[] // 配置选项 showRecent?: boolean showTabs?: boolean showTabText?: boolean showFooter?: boolean showPreview?: boolean showEmojiName?: boolean showCategoryCount?: boolean showRecentClear?: boolean showDeleteButton?: boolean showSendButton?: boolean showScrollbar?: boolean // 搜索功能 enableSearch?: boolean searchPlaceholder?: string searchIconSize?: number searchIconColor?: string autoFocus?: boolean // 布局配置 columns?: number emojiSize?: string | number spacing?: string | number borderRadius?: string | number // 样式控制 height?: string | number backgroundColor?: string categoryColor?: string // 交互配置 maxRecentCount?: number allowMultiple?: boolean selectedEmojis?: Emoji[] // 空状态 emptyIconSize?: number emptyIconColor?: string emptyText?: string } declare interface EmojiPickerEmits { // 基础事件 'update:visible': [visible: boolean] 'open': [] 'close': [] // 表情事件 'select': [emoji: Emoji] 'delete': [emoji: Emoji] 'send': [emoji: Emoji] 'longpress': [emoji: Emoji] // 搜索事件 'search': [keyword: string] 'search-clear': [] // 最近使用 'recent-clear': [] // 分类切换 'tab-change': [tabId: string] } declare interface EmojiPickerSlots { // 底部自定义插槽 footer?: () => any } declare interface EmojiPickerExpose { open: () => void close: () => void insertEmoji: (emoji: Emoji) => void clearRecentEmojis: () => void getRecentEmojis: () => Emoji[] searchEmoji: (keyword: string) => Emoji[] } declare interface _EmojiPicker { new(): { $props: AllowedComponentProps & VNodeProps & EmojiPickerProps $emit: EmojiPickerEmits $slots: EmojiPickerSlots $exposed?: EmojiPickerExpose } } export declare const EmojiPicker: _EmojiPicker export default EmojiPicker export type { Emoji, EmojiCategory, EmojiPickerProps, EmojiPickerEmits, EmojiPickerSlots }