/** * MetonaToast TypeScript 类型定义 * @version 2.0.0 */ // 基础类型 export type ToastType = | 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading' | 'check' | 'x' | 'alert' | 'question' | 'star' | 'heart' | 'bell' | 'mail' | 'settings' | 'user' | 'home' | 'search' | 'plus' | 'minus' | 'edit' | 'trash' | 'download' | 'upload' | 'share' | 'link' | 'external' | 'clock' | 'calendar' | 'map' | 'compass' | 'globe' | 'wifi' | 'cloud' | 'sun' | 'moon' | 'zap' | 'activity' | 'cpu' | 'database' | 'server' | 'terminal' | 'code' | 'git' | 'package' | 'layers' | 'grid' | 'list' | 'filter' | 'sort' | 'refresh' | 'sync' | 'power' | 'battery' | 'bluetooth' | 'volume' | 'mic' | 'camera' | 'image' | 'video' | 'music' | 'file' | 'folder' | 'clipboard' | 'save' | 'print' | 'eye' | 'eyeOff' | 'lock' | 'unlock' | 'shield' | 'key' | 'flag' | 'bookmark' | 'tag' | 'gift' | 'award' | 'target' | 'crosshair' | 'move' | 'maximize' | 'minimize' | 'copy' | 'cut' | 'paste' | 'rotateCw' | 'rotateCcw' | 'zoomIn' | 'zoomOut' | 'crop' | 'sliders' | 'toggleLeft' | 'toggleRight' | 'checkCircle' | 'xCircle' | 'alertCircle' | 'infoCircle' | 'helpCircle' | 'alertTriangle' | 'checkSquare' | 'square' | 'circle' | 'triangle' | 'hexagon' | 'octagon' | 'pentagon' | 'diamond'; export type ToastPosition = | 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'; export type ToastTheme = | 'light' | 'dark' | 'auto' | 'warm' | (string & {}); // 自定义主题 export type ToastAnimation = | 'slide' | 'fade' | 'scale' | 'bounce' | 'flip' | 'rotate' | 'zoom' | 'slideUp' | 'slideDown' | 'slideLeft' | 'slideRight' | (string & {}); // 自定义动画 export type ToastProgressDirection = 'horizontal' | 'vertical'; export type ToastLocale = | 'zh-CN' | 'zh-TW' | 'en-US' | 'en-GB' | 'ja' | 'ko' | 'fr' | 'de' | 'es' | 'pt' | 'ru' | 'ar' | 'hi' | 'th' | 'vi' | 'id' | 'ms' | 'tr' | 'it' | 'nl' | 'pl' | 'uk' | 'cs' | 'sv' | 'da' | 'fi' | 'nb' | 'el' | 'he' | 'hu' | 'ro' | 'bg' | 'hr' | 'sk' | 'sl' | 'et' | 'lv' | 'lt' | 'ca' | 'gl' | 'eu' | 'cy' | 'ga' | 'mt' | 'is' | 'mk' | 'sq' | 'sr' | 'bs' | 'me' | 'ka' | 'hy' | 'az' | 'uz' | 'kk' | 'ky' | 'tg' | 'tk' | 'mn' | 'ne' | 'si' | 'my' | 'km' | 'lo' | 'am' | 'sw' | 'yo' | 'ig' | 'ha' | 'zu' | 'af' | 'xh' | 'st' | 'tn' | 'ts' | 'ss' | 've' | 'nr'; // 配置接口 export interface ToastConfig { /** Toast位置 */ position?: ToastPosition; /** 显示时长(毫秒),0表示不自动关闭 */ duration?: number; /** 最大显示数量 */ max?: number; /** Toast间距 */ gap?: number; /** 边距 */ offset?: number; /** 悬停时暂停计时 */ pauseOnHover?: boolean; /** 点击关闭 */ closeOnClick?: boolean; /** 显示进度条 */ showProgress?: boolean; /** 进度条方向 */ progressDirection?: ToastProgressDirection; /** 主题 */ theme?: ToastTheme; /** 显示图标 */ icon?: boolean; /** 显示关闭按钮 */ closeButton?: boolean; /** 允许拖拽 */ draggable?: boolean; /** 动画效果 */ animation?: ToastAnimation; /** z-index */ zIndex?: number; /** 宽度 */ width?: number | string; /** 自定义类名 */ className?: string; /** 自定义样式 */ style?: Partial; /** 显示回调 */ onShow?: (toast: ToastInstance) => void; /** 关闭回调 */ onClose?: (toast: ToastInstance) => void; /** 点击回调 */ onClick?: (toast: ToastInstance) => void; /** 语言 */ locale?: ToastLocale; /** 插件 */ plugins?: Array; } // Toast选项 export interface ToastOptions extends ToastConfig { /** Toast类型 */ type?: ToastType; /** 标题 */ title?: string; /** 消息内容 */ message?: string; /** 别名 */ content?: string; /** HTML内容 */ html?: string; /** 自定义图标HTML */ iconHTML?: string; /** 唯一标识符 */ id?: string; } // Toast实例 export interface ToastInstance { /** 唯一标识符 */ id: string; /** Toast类型 */ type: ToastType; /** 标题 */ title: string; /** 消息内容 */ message: string; /** HTML内容 */ html: string; /** 配置 */ config: Required; /** DOM元素 */ el: HTMLElement | null; /** 进度条元素 */ barEl: HTMLElement | null; /** 动画帧ID */ rafId: number | null; /** 剩余时间 */ remaining: number; /** 开始时间 */ startedAt: number; /** 是否暂停 */ paused: boolean; /** 是否关闭中 */ closing: boolean; /** 创建Toast */ create(): ToastInstance; /** 更新Toast */ update(partial: Partial): ToastInstance; /** 关闭Toast */ close(immediate?: boolean): void; } // Loading控制对象 export interface LoadingControl { /** Toast ID */ id: string; /** 显示成功 */ success(message?: string, options?: ToastOptions): ToastInstance | null; /** 显示错误 */ error(message?: string, options?: ToastOptions): ToastInstance | null; /** 显示信息 */ info(message?: string, options?: ToastOptions): ToastInstance | null; /** 显示警告 */ warning(message?: string, options?: ToastOptions): ToastInstance | null; /** 更新 */ update(partial: Partial): MeToast; /** 关闭 */ dismiss(): void; } // 进度控制对象 export interface ProgressControl { /** Toast ID */ id: string; /** 设置进度 */ setProgress(percent: number): void; /** 完成 */ complete(message?: string): void; /** 错误 */ error(message?: string): void; /** 关闭 */ dismiss(): void; } // 倒计时控制对象 export interface CountdownControl { /** Toast ID */ id: string; /** 取消 */ cancel(): void; /** 暂停 */ pause(): void; /** 恢复 */ resume(): void; } // 插件接口 export interface Plugin { /** 插件名称 */ name?: string; /** 插件版本 */ version?: string; /** 插件描述 */ description?: string; /** 钩子 */ hooks?: Record; /** 中间件 */ middleware?: Function; /** 安装 */ install?: (manager: PluginManager) => void; /** 卸载 */ uninstall?: (manager: PluginManager) => void; /** 初始化 */ init?: (manager: PluginManager) => void; /** 销毁 */ destroy?: (manager: PluginManager) => void; [key: string]: any; } // 插件管理器接口 export interface PluginManager { /** 注册插件 */ register(name: string, plugin: Plugin): PluginManager; /** 注销插件 */ unregister(name: string): PluginManager; /** 获取插件 */ get(name: string): Plugin | null; /** 检查插件是否存在 */ has(name: string): boolean; /** 启用插件 */ enable(name: string): PluginManager; /** 禁用插件 */ disable(name: string): PluginManager; /** 检查插件是否启用 */ isEnabled(name: string): boolean; /** 获取所有插件 */ getAll(): Plugin[]; /** 获取插件名称 */ getNames(): string[]; /** 注册中间件 */ use(middleware: Function): PluginManager; /** 移除中间件 */ removeMiddleware(middleware: Function): PluginManager; /** 触发钩子 */ trigger(hookName: string, context: any, ...args: any[]): Promise; /** 触发同步钩子 */ triggerSync(hookName: string, context: any, ...args: any): any; /** 执行中间件 */ executeMiddleware(context: any, next: Function): Promise; /** 获取所有钩子 */ getHooks(): Map>; /** 检查钩子是否存在 */ hasHook(hookName: string): boolean; /** 获取所有中间件 */ getMiddleware(): Function[]; /** 清除所有钩子 */ clearHooks(): void; /** 清除所有中间件 */ clearMiddleware(): void; /** 重置 */ reset(): void; /** 初始化 */ init(): void; /** 销毁 */ destroy(): void; } // 动画管理器接口 export interface AnimationManager { /** 注册动画 */ register(name: string, config: AnimationConfig): void; /** 注销动画 */ unregister(name: string): void; /** 获取动画配置 */ get(name: string): AnimationConfig | null; /** 应用动画 */ apply(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise; /** 应用进入动画 */ enter(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise; /** 应用离开动画 */ leave(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise; /** 取消所有动画 */ cancelAll(): void; /** 取消元素动画 */ cancel(element: HTMLElement): void; /** 暂停所有动画 */ pauseAll(): void; /** 恢复所有动画 */ resumeAll(): void; /** 暂停元素动画 */ pause(element: HTMLElement): void; /** 恢复元素动画 */ resume(element: HTMLElement): void; /** 获取活动动画数量 */ getActiveCount(): number; /** 获取所有活动动画 */ getActiveAnimations(): Map; /** 检查元素是否有活动动画 */ hasActiveAnimation(element: HTMLElement): boolean; /** 获取动画配置 */ getConfig(): { animations: string[]; activeCount: number }; /** 重置 */ reset(): void; /** 销毁 */ destroy(): void; } // 动画配置 export interface AnimationConfig { /** 进入状态 */ enter: Partial; /** 离开状态 */ leave: Partial; /** 持续时间(毫秒) */ duration?: number; /** 缓动函数 */ easing?: string; /** 延迟(毫秒) */ delay?: number; /** 迭代次数 */ iterations?: number; /** 方向 */ direction?: 'normal' | 'reverse' | 'alternate' | 'alternate-reverse'; /** 填充模式 */ fillMode?: 'none' | 'forwards' | 'backwards' | 'both'; } // 动画选项 export interface AnimationOptions { /** 持续时间(毫秒) */ duration?: number; /** 缓动函数 */ easing?: string; /** 延迟(毫秒) */ delay?: number; /** 迭代次数 */ iterations?: number; /** 方向 */ direction?: 'normal' | 'reverse' | 'alternate' | 'alternate-reverse'; /** 填充模式 */ fillMode?: 'none' | 'forwards' | 'backwards' | 'both'; } // 主题配置 export interface ThemeConfig { /** 背景色 */ bg: string; /** 文字颜色 */ text: string; /** 边框颜色 */ border: string; /** 阴影 */ shadow: string; /** 悬停阴影 */ hoverShadow: string; /** 进度条背景 */ progressBg: string; /** 关闭按钮悬停背景 */ closeHoverBg: string; /** 背景模糊 */ backdropFilter?: string; } // 国际化配置 export interface I18nConfig { /** 翻译 */ translations: Record>; /** 语言方向 */ direction?: 'ltr' | 'rtl'; } // MeToast主对象接口 export interface MeToast { /** 版本号 */ version: string; // 核心方法 /** 配置 */ configure(options: ToastConfig): MeToast; /** 初始化 */ init(options?: InitOptions): MeToast; /** 销毁 */ destroy(): void; /** 获取状态 */ getStatus(): StatusInfo; /** 获取配置 */ getConfig(): Required; /** 更新配置 */ updateConfig(config: Partial): MeToast; /** 重置配置 */ resetConfig(): MeToast; // Toast方法 /** 显示Toast */ show(message: string, options?: ToastOptions): ToastInstance; /** 显示成功Toast */ success(message: string, options?: ToastOptions): ToastInstance; /** 显示错误Toast */ error(message: string, options?: ToastOptions): ToastInstance; /** 显示警告Toast */ warning(message: string, options?: ToastOptions): ToastInstance; /** 显示信息Toast */ info(message: string, options?: ToastOptions): ToastInstance; /** 显示加载Toast */ loading(message: string, options?: ToastOptions): LoadingControl; /** Promise风格Toast */ promise(promise: Promise, options?: PromiseOptions): Promise; /** 确认对话框 */ confirm(message: string, options?: ConfirmOptions): Promise; /** 输入对话框 */ prompt(message: string, options?: PromptOptions): Promise; /** 进度Toast */ progress(message: string, options?: ProgressOptions): ProgressControl; /** 倒计时Toast */ countdown(message: string, seconds: number, options?: CountdownOptions): CountdownControl; /** 队列Toast */ queue(messages: Array, options?: QueueOptions): Promise; /** 堆叠Toast */ stack(messages: Array, options?: StackOptions): void; // Toast管理 /** 查找Toast */ find(id: string): ToastInstance | undefined; /** 关闭Toast */ dismiss(id?: string): void; /** 清除Toast */ clear(position?: ToastPosition): void; /** 获取所有Toast */ getToasts(): ToastInstance[]; /** 获取Toast数量 */ count(): number; /** 检查是否有Toast */ hasToasts(): boolean; /** 获取Toast */ getToast(id: string): ToastInstance | null; /** 关闭所有Toast */ closeAll(): void; /** 清除所有Toast */ clearAll(): void; /** 暂停所有Toast */ pauseAll(): void; /** 恢复所有Toast */ resumeAll(): void; /** 更新所有Toast */ updateAll(partial: Partial): void; /** 查找Toast */ findToasts(predicate: (toast: ToastInstance) => boolean): ToastInstance[]; /** 按类型查找Toast */ findByType(type: ToastType): ToastInstance[]; /** 按位置查找Toast */ findByPosition(position: ToastPosition): ToastInstance[]; // 插件系统 /** 安装插件 */ use(plugin: string | Plugin, options?: Record): MeToast; // 模块引用 /** 动画模块 */ animations: AnimationUtils; /** 主题模块 */ themes: ThemeUtils; /** 国际化模块 */ i18n: I18nUtils; /** 插件模块 */ plugins: PluginUtils; /** 预设插件 */ presetPlugins: Record; } // 初始化选项 export interface InitOptions { /** 配置 */ config?: ToastConfig; /** 主题 */ theme?: ToastTheme; /** 语言 */ locale?: ToastLocale; /** 插件 */ plugins?: Array; } // 状态信息 export interface StatusInfo { /** 版本号 */ version: string; /** Toast数量 */ toasts: number; /** 当前主题 */ theme: string; /** 当前语言 */ locale: string; /** 已安装插件 */ plugins: string[]; /** 活动动画数量 */ animations: number; } // Promise选项 export interface PromiseOptions extends ToastOptions { /** 加载消息 */ loading?: string; /** 成功消息 */ success?: string; /** 错误消息 */ error?: string; } // 确认选项 export interface ConfirmOptions extends ToastOptions { /** 确认按钮文字 */ confirmText?: string; /** 确认按钮颜色 */ confirmColor?: string; /** 取消按钮文字 */ cancelText?: string; /** 取消按钮颜色 */ cancelColor?: string; } // 输入选项 export interface PromptOptions extends ToastOptions { /** 输入框类型 */ inputType?: string; /** 占位符 */ placeholder?: string; /** 默认值 */ defaultValue?: string; /** 提交按钮文字 */ submitText?: string; /** 提交按钮颜色 */ submitColor?: string; /** 取消按钮文字 */ cancelText?: string; /** 取消按钮颜色 */ cancelColor?: string; } // 进度选项 export interface ProgressOptions extends ToastOptions { /** 进度条颜色 */ progressColor?: string; } // 倒计时选项 export interface CountdownOptions extends ToastOptions { /** 完成回调 */ onComplete?: () => void; } // 队列选项 export interface QueueOptions extends ToastOptions { /** 延迟(毫秒) */ delay?: number; } // 堆叠选项 export interface StackOptions extends ToastOptions { /** 交错时间(毫秒) */ stagger?: number; } // 动画工具接口 export interface AnimationUtils { /** 应用动画 */ apply(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise; /** 应用进入动画 */ enter(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise; /** 应用离开动画 */ leave(element: HTMLElement, animationName: string, options?: AnimationOptions): Promise; /** 取消所有动画 */ cancelAll(): void; /** 取消元素动画 */ cancel(element: HTMLElement): void; /** 暂停所有动画 */ pauseAll(): void; /** 恢复所有动画 */ resumeAll(): void; /** 暂停元素动画 */ pause(element: HTMLElement): void; /** 恢复元素动画 */ resume(element: HTMLElement): void; /** 获取活动动画数量 */ getActiveCount(): number; /** 检查元素是否有活动动画 */ hasActiveAnimation(element: HTMLElement): boolean; /** 注册动画 */ register(name: string, config: AnimationConfig): void; /** 注销动画 */ unregister(name: string): void; /** 获取动画配置 */ get(name: string): AnimationConfig | null; /** 获取所有动画名称 */ getAnimationNames(): string[]; /** 获取动画配置 */ getConfig(): { animations: string[]; activeCount: number }; /** 重置 */ reset(): void; /** 销毁 */ destroy(): void; } // 主题工具接口 export interface ThemeUtils { /** 获取系统主题 */ getSystemTheme(): 'light' | 'dark'; /** 解析主题 */ resolveTheme(theme: ToastTheme): 'light' | 'dark'; /** 获取主题配置 */ getThemeConfig(theme: ToastTheme): ThemeConfig; /** 应用主题 */ applyTheme(theme: ToastTheme): void; /** 获取当前主题 */ getCurrentTheme(): ToastTheme; /** 获取解析后的主题 */ getResolvedTheme(): 'light' | 'dark'; /** 切换主题 */ switchTheme(theme: ToastTheme): void; /** 切换亮色/暗色主题 */ toggleTheme(): void; /** 重置为自动主题 */ resetToAuto(): void; /** 初始化主题系统 */ initTheme(): void; /** 监听系统主题变化 */ watchSystemTheme(): void; /** 停止监听系统主题变化 */ unwatchSystemTheme(): void; /** 添加主题监听器 */ addThemeListener(listener: (theme: ToastTheme, resolved: 'light' | 'dark') => void): () => void; /** 移除主题监听器 */ removeThemeListener(listener: Function): void; /** 清除所有主题监听器 */ clearThemeListeners(): void; /** 注册自定义主题 */ registerTheme(name: string, config: ThemeConfig): void; /** 注销自定义主题 */ unregisterTheme(name: string): void; /** 获取所有主题 */ getAllThemes(): Record; /** 获取主题名称列表 */ getThemeNames(): string[]; /** 检查主题是否存在 */ hasTheme(name: string): boolean; /** 获取主题预览 */ getThemePreview(theme: ToastTheme): ThemePreview; /** 生成主题CSS */ generateThemeCSS(theme: ToastTheme): string; /** 应用主题CSS */ applyThemeCSS(theme: ToastTheme): void; /** 移除主题CSS */ removeThemeCSS(): void; /** 保存主题 */ saveTheme(theme: ToastTheme): void; /** 加载主题 */ loadTheme(): ToastTheme; } // 主题预览 export interface ThemePreview { /** 主题名称 */ name: string; /** 解析后的主题 */ resolved: 'light' | 'dark'; /** 颜色 */ colors: { background: string; text: string; border: string; }; /** 是否为暗色主题 */ isDark: boolean; /** 是否为亮色主题 */ isLight: boolean; /** 是否为自动主题 */ isAuto: boolean; } // 国际化工具接口 export interface I18nUtils { /** 翻译 */ t(key: string, params?: Record): string; /** 复数翻译 */ plural(key: string, count: number, params?: Record): string; /** 获取当前语言 */ getCurrentLocale(): ToastLocale; /** 设置当前语言 */ setCurrentLocale(locale: ToastLocale): void; /** 切换语言 */ switchLocale(locale: ToastLocale): void; /** 获取回退语言 */ getFallbackLocale(): ToastLocale; /** 设置回退语言 */ setFallbackLocale(locale: ToastLocale): void; /** 检查翻译是否存在 */ hasTranslation(key: string): boolean; /** 获取所有翻译 */ getTranslations(locale: ToastLocale): Record; /** 添加翻译 */ addTranslations(locale: ToastLocale, translations: Record): void; /** 移除翻译 */ removeTranslation(locale: ToastLocale, key: string): void; /** 清除翻译 */ clearTranslations(locale: ToastLocale): void; /** 获取支持的语言列表 */ getSupportedLocales(): ToastLocale[]; /** 检查语言是否支持 */ isLocaleSupported(locale: string): boolean; /** 获取语言名称 */ getLocaleName(locale: ToastLocale): string; /** 获取语言方向 */ getLocaleDirection(locale: ToastLocale): 'ltr' | 'rtl'; /** 获取语言信息 */ getLocaleInfo(locale: ToastLocale): LocaleInfo; /** 获取所有语言信息 */ getAllLocaleInfo(): LocaleInfo[]; /** 格式化数字 */ formatNumber(number: number, options?: Intl.NumberFormatOptions): string; /** 格式化货币 */ formatCurrency(amount: number, currency?: string, options?: Intl.NumberFormatOptions): string; /** 格式化百分比 */ formatPercent(value: number, options?: Intl.NumberFormatOptions): string; /** 格式化日期 */ formatDate(date: Date | number | string, options?: Intl.DateTimeFormatOptions): string; /** 格式化时间 */ formatTime(date: Date | number | string, options?: Intl.DateTimeFormatOptions): string; /** 格式化相对时间 */ formatRelativeTime(date: Date | number | string, options?: Intl.RelativeTimeFormatOptions): string; /** 格式化列表 */ formatList(list: string[], options?: Intl.ListFormatOptions): string; /** 格式化复数 */ formatPlural(count: number, options?: Intl.PluralRulesOptions): string; /** 添加语言监听器 */ addLocaleListener(listener: (locale: ToastLocale) => void): () => void; /** 移除语言监听器 */ removeLocaleListener(listener: Function): void; /** 清除所有语言监听器 */ clearLocaleListeners(): void; /** 初始化国际化系统 */ initI18n(): void; /** 保存语言 */ saveLocale(locale: ToastLocale): void; /** 加载语言 */ loadLocale(): ToastLocale; /** 获取默认语言 */ getDefaultLocale(): ToastLocale; } // 语言信息 export interface LocaleInfo { /** 语言代码 */ code: ToastLocale; /** 语言名称 */ name: string; /** 语言方向 */ direction: 'ltr' | 'rtl'; /** 是否支持 */ isSupported: boolean; /** 是否为当前语言 */ isCurrent: boolean; /** 是否为回退语言 */ isFallback: boolean; } // 插件工具接口 export interface PluginUtils { /** 创建插件管理器 */ createManager(): PluginManager; /** 注册插件 */ register(name: string, plugin: Plugin): void; /** 获取插件 */ get(name: string): Plugin | null; /** 获取所有插件 */ getAll(): Plugin[]; /** 获取预设插件 */ getPreset(name: string): Plugin | null; /** 获取所有预设插件 */ getAllPresets(): Record; /** 创建插件 */ createPlugin(config: Plugin): Plugin; /** 验证插件 */ validatePlugin(plugin: Plugin): { valid: boolean; errors: string[] }; } // 钩子名称 export const HOOK_NAMES: { BEFORE_INIT: 'beforeInit'; AFTER_INIT: 'afterInit'; BEFORE_DESTROY: 'beforeDestroy'; AFTER_DESTROY: 'afterDestroy'; BEFORE_SHOW: 'beforeShow'; AFTER_SHOW: 'afterShow'; BEFORE_CLOSE: 'beforeClose'; AFTER_CLOSE: 'afterClose'; BEFORE_UPDATE: 'beforeUpdate'; AFTER_UPDATE: 'afterUpdate'; CONFIG_CHANGE: 'configChange'; THEME_CHANGE: 'themeChange'; LOCALE_CHANGE: 'localeChange'; CLICK: 'click'; HOVER: 'hover'; DRAG_START: 'dragStart'; DRAG_END: 'dragEnd'; ANIMATION_START: 'animationStart'; ANIMATION_END: 'animationEnd'; PROGRESS_START: 'progressStart'; PROGRESS_UPDATE: 'progressUpdate'; PROGRESS_END: 'progressEnd'; ERROR: 'error'; CUSTOM: 'custom'; }; // 预设插件 declare const presetPlugins: { keyboard: Plugin; persistence: Plugin; accessibility: Plugin; }; // 版本号 export const VERSION: string; // 默认导出 declare const metonaToast: MeToast; export default metonaToast; // 命名导出 export { metonaToast as meToast, metonaToast as Met, metonaToast as MeToast }; // Toast类 export class Toast implements ToastInstance { id: string; type: ToastType; title: string; message: string; html: string; config: Required; el: HTMLElement | null; barEl: HTMLElement | null; rafId: number | null; remaining: number; startedAt: number; paused: boolean; closing: boolean; constructor(opts: ToastOptions); create(): Toast; update(partial: Partial): Toast; close(immediate?: boolean): void; } // 全局声明 declare global { interface Window { MeToast: MeToast; Met: MeToast; metonaToast: MeToast; } }