import { AnyTagProps, FocusType as FocusSenderType, MentionConfig, SelectConfig, TagData, TriggerConfig, Write as WriteSender, default as XSender } from 'x-sender'; export type FocusType = FocusSenderType; export type Write = WriteSender; export type ChatNode = AnyTagProps; export interface TipConfig { tipTemplate?: string; dialogTemplate?: string; closeNames?: string[]; offsetTop?: number; } export interface XSenderProps { placeholder?: string; device?: 'pc' | 'h5' | 'auto'; autoFocus?: boolean; variant?: 'default' | 'updown'; maxLength?: number; submitType?: 'enter' | 'shiftEnter'; customStyle?: Partial; loading?: boolean; disabled?: boolean; clearable?: boolean; headerAnimationTimer?: number; mentionConfig?: MentionConfig; triggerConfig?: TriggerConfig[]; selectConfig?: SelectConfig[]; tipConfig?: TipConfig | boolean; getPlugin?: () => typeof XSender; } export interface SenderState { isEmpty: boolean; textLength: number; tipShow: boolean; } export interface ModelValue extends TagData { html: string; text: string; } export interface XSenderEmits { (e: 'submit'): void; (e: 'change'): void; (e: 'cancel'): void; // 文件粘贴事件 (event: 'pasteFile', firstFile: File, fileList: FileList): void; }