import { StyleProp, ViewStyle, TextStyle } from 'react-native'; /** Toast 类型 */ export type ToastType = 'success' | 'error' | 'warning' | 'info' | 'loading' | 'custom'; /** Toast 位置 */ export type ToastPosition = 'top' | 'center' | 'bottom'; /** Toast 图标配置 */ export interface ToastIconConfig { /** 图标名称 */ name: string; /** 图标库 */ family?: 'Ionicons' | 'MaterialIcons' | 'FontAwesome' | 'AntDesign'; /** 图标大小 */ size?: number; /** 图标颜色 */ color?: string; } /** Toast 配置选项 */ export interface ToastOptions { /** 消息内容 */ message: string; /** Toast 类型 */ type?: ToastType; /** 显示时长(毫秒),0 表示不自动关闭 */ duration?: number; /** 显示位置 */ position?: ToastPosition; /** 自定义图标 */ icon?: ToastIconConfig | React.ReactNode; /** 是否显示图标 */ showIcon?: boolean; /** 是否显示遮罩层 */ mask?: boolean; /** 遮罩层是否可点击关闭 */ maskClosable?: boolean; /** 遮罩层颜色 */ maskColor?: string; /** 关闭回调 */ onClose?: () => void; /** Toast 容器样式 */ style?: StyleProp; /** 消息文字样式 */ textStyle?: StyleProp; /** 图标容器样式 */ iconStyle?: StyleProp; /** 背景色 */ backgroundColor?: string; /** 文字颜色 */ textColor?: string; /** 圆角 */ borderRadius?: number; /** 最大宽度 */ maxWidth?: number | string; /** 自定义内容(优先于 message) */ content?: React.ReactNode; } /** Toast 实例方法 */ export interface ToastInstance { /** 关闭当前 Toast */ close: () => void; } /** Toast 静态方法 */ export interface ToastMethods { /** 显示普通提示 */ show: (message: string | ToastOptions, duration?: number) => ToastInstance; /** 显示成功提示 */ success: (message: string | ToastOptions, duration?: number) => ToastInstance; /** 显示错误提示 */ error: (message: string | ToastOptions, duration?: number) => ToastInstance; /** 显示警告提示 */ warning: (message: string | ToastOptions, duration?: number) => ToastInstance; /** 显示信息提示 */ info: (message: string | ToastOptions, duration?: number) => ToastInstance; /** 显示加载提示 */ loading: (message?: string | ToastOptions) => ToastInstance; /** 隐藏所有 Toast */ hide: () => void; /** 隐藏所有 Toast(别名) */ clear: () => void; } /** DbToast 组件属性 */ export interface DbToastProps { /** 是否可见 */ visible: boolean; /** 消息内容 */ message?: string; /** Toast 类型 */ type?: ToastType; /** 显示位置 */ position?: ToastPosition; /** 自定义图标 */ icon?: ToastIconConfig | React.ReactNode; /** 是否显示图标 */ showIcon?: boolean; /** 是否显示遮罩层 */ mask?: boolean; /** 遮罩层颜色 */ maskColor?: string; /** 关闭回调 */ onClose?: () => void; /** Toast 容器样式 */ style?: StyleProp; /** 消息文字样式 */ textStyle?: StyleProp; /** 背景色 */ backgroundColor?: string; /** 文字颜色 */ textColor?: string; /** 圆角 */ borderRadius?: number; /** 自定义内容 */ children?: React.ReactNode; }