interface AllowedComponentProps {
    /**
     * 小程序下不支持，请用 `view` 包裹
     */
    class?: unknown;
    /**
     * 小程序下请用 `customStyle` 配置自定义样式
     */
    style?: unknown;
}
interface VNodeProps {
    key?: string | number | symbol;
    ref?: unknown;
}
interface BaseComponent<T, K = any> {
    new (): {
        $props: AllowedComponentProps & VNodeProps & T;
        $slots: K;
    };
}
type Lang = "zh_CN" | "zh_TW" | "en";
type ColorType = "warning" | "success" | "primary" | "error" | "info";
type Effect = "light" | "dark";
type LoadingMode = "spinner" | "circle" | "semicircle";
type Shape = "circle" | "square";
type ImageMode = "scaleToFill" | "aspectFit" | "aspectFill" | "widthFix" | "heightFix" | "top" | "bottom" | "center" | "left" | "right" | "top left" | "top right" | "bottom left" | "bottom right";
type LinkType = "navigateTo" | "redirectTo" | "reLaunch" | "switchTab";
type Direction = "row" | "column";
type LabelPosition = "top" | "left";
type IconPlacement = "left" | "right";

type ButtonSize = "normal" | "large" | "mini";
type ButtonShape = "square" | "circle";
type ButtonFormType = "submit" | "rest";
type ButtonOpenType = "feedback" | "share" | "getUserInfo" | "contact" | "getPhoneNumber" | "launchApp" | "openSetting" | "chooseAvatar" | "uploadDouyinVideo" | "im" | "getAuthorize" | "lifestyle" | "contactShare" | "openGroupProfile" | "openGuildProfile" | "openPublicProfile" | "shareMessageToFriend" | "addFriend" | "addColorSign" | "addGroupApp" | "addToFavorites" | "chooseAddress" | "chooseInvoiceTitle" | "login" | "subscribe" | "favorite" | "watchLater" | "openProfile" | "agreePrivacyAuthorization";
interface ButtonProps {
    /**
     * 是否显示按钮的细边框
     * @default true
     */
    hairline?: boolean;
    /**
     * 按钮的样式类型
     * @default "info"
     */
    type?: ColorType;
    /**
     * 按钮的大小
     * @default "normal"
     */
    size?: ButtonSize;
    /**
     * 按钮外观形状
     * @default "square"
     */
    shape?: ButtonShape;
    /**
     * 按钮是否镂空，背景色透明
     * @default false
     */
    plain?: boolean;
    /**
     * 是否禁用
     * @default false
     */
    disabled?: boolean;
    /**
     * 按钮名称前是否带 loading 图标
     * @default false
     */
    loading?: boolean;
    /**
     * 加载中提示文字
     * @default ""
     */
    loadingText?: string;
    /**
     * 加载状态图标类型
     * @default "spinner"
     */
    loadingMode?: string;
    /**
     * 加载图标大小
     * @default 15
     */
    loadingSize?: string | number;
    /**
     * 开放能力
     * @default ""
     */
    openType?: ButtonOpenType;
    /**
     * 用于 <form> 组件，点击分别会触发 <form> 组件的 submit/reset 事件
     * @default ""
     */
    formType?: ButtonFormType;
    /**
     * 打开 APP 时，向 APP 传递的参数，open-type=launchApp时有效 （注：只微信小程序、QQ小程序有效）
     * @default ""
     */
    appParameter?: string;
    /**
     * 指定是否阻止本节点的祖先节点出现点击态，微信小程序有效（默认 true）
     * @default true
     */
    hoverStopPropagation?: boolean;
    /**
     * 指定返回用户信息的语言
     * @default "en"
     */
    lang?: Lang;
    /**
     * 会话来源，openType="contact"时有效
     * @default ""
     */
    sessionFrom?: string;
    /**
     * 会话内消息卡片标题，openType="contact"时有效
     * @default ""
     */
    sendMessageTitle?: string;
    /**
     * 会话内消息卡片点击跳转小程序路径，openType="contact"时有效
     * @default ""
     */
    sendMessagePath?: string;
    /**
     * 会话内消息卡片图片，openType="contact"时有效
     * @default ""
     */
    sendMessageImg?: string;
    /**
     * 是否显示会话内消息卡片，设置此参数为 true，用户进入客服会话会在右下角显示"可能要发送的小程序"提示，用户点击后可以快速发送小程序消息，openType="contact"时有效
     * @default false
     */
    showMessageCard?: boolean;
    /**
     * 额外传参参数，用于小程序的data-xxx属性，通过target.dataset.name获取
     * @default ""
     */
    dataName?: string;
    /**
     * 节流，一定时间内只能触发一次，单位毫秒
     * @default 0
     */
    throttleTime?: string | number;
    /**
     * 按住后多久出现点击态，单位毫秒
     * @default 0
     */
    hoverStartTime?: string | number;
    /**
     * 手指松开后点击态保留时间，单位毫秒
     * @default 200
     */
    hoverStayTime?: string | number;
    /**
     * 按钮文字，之所以通过props传入，是因为slot传入的话（注：nvue中无法控制文字的样式）
     * @default ""
     */
    text?: string | number;
    /**
     * 按钮图标
     * @default ""
     */
    icon?: string;
    /**
     * 按钮图大小
     * @version `1.0.9`
     * @default ""
     */
    iconSize?: string | number;
    /**
     * 按钮颜色
     * @default ""
     */
    iconColor?: string;
    /**
     * 按钮颜色，支持传入linear-gradient渐变色
     * @default ""
     */
    color?: string;
    /**
     * 自定义按钮文字的样式，避免设置customStyle设置覆盖不了样式的情况
     * @default ""
     */
    customTextStyle?: Record<string, any>;
    /**
     * 定义需要用到的外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface ButtonEvents {
    /**
     * 按钮点击，请勿使用@tap点击事件，微信小程序无效，返回值为点击事件及参数
     * @description 阻止事件冒泡：vue2 使用 `@click.native.stop`, vue3 使用 view 包裹按钮，在 view 写 `@click.stop`
     */
    ["onClick"]?: (...args: any[]) => any;
    /**
     * 获取用户手机号回调，open-type="getPhoneNumber"生效
     */
    ["onGetphonenumber"]?: (...args: any[]) => any;
    /**
     * 用户点击该按钮时，会返回获取到的用户信息，从返回参数的detail中获取到的值同uni.getUserInfo，open-type="getUserInfo"生效
     */
    ["onGetuserinfo"]?: (...args: any[]) => any;
    /**
     * 当使用开放能力时，发生错误的回调 ，open-type="launchApp"生效
     */
    ["onError"]?: (...args: any[]) => any;
    /**
     * 从小程序打开 App 成功的回调，open-type="launchApp"生效
     */
    ["onOpensetting"]?: (...args: any[]) => any;
    /**
     * 打开 APP 成功的回调，open-type="launchApp"生效
     */
    ["onLaunchapp"]?: (...args: any[]) => any;
    /**
     * 客服消息回调，open-type="contact"生效
     */
    ["onContact"]?: (...args: any[]) => any;
    /**
     * 获取用户头像回调，open-type="chooseAvatar"生效
     */
    ["onChooseavatar"]?: (...args: any[]) => any;
    /**
     * 添加群应用的回调，open-type="addGroupApp"生效
     */
    ["onAddgroupapp"]?: (...args: any[]) => any;
    /**
     * 调起用户编辑并选择收货地址的回调，open-type="chooseAddress"生效
     */
    ["onChooseaddress"]?: (...args: any[]) => any;
    /**
     * 用户选择发票抬头的回调，open-type="chooseInvoiceTitle"生效
     */
    ["onChooseinvoicetitle"]?: (...args: any[]) => any;
    /**
     * 订阅消息授权回调，open-type="subscribe"生效
     */
    ["onSubscribe"]?: (...args: any[]) => any;
    /**
     * 登录回调，open-type="login"生效
     */
    ["onLogin"]?: (...args: any[]) => any;
    /**
     * 监听跳转IM的成功回调，open-type="im"生效
     */
    ["onIm"]?: (...args: any[]) => any;
}
interface ButtonSlots {
    /**
     * 默认插槽，按钮文本，建议统一使用text参数，保证样式的统一性
     */
    ["default"]?: () => any;
    /**
     * 后置插槽，方便在按钮文字后面增加图标等
     */
    ["suffix"]?: () => any;
}
interface _Button extends BaseComponent<ButtonProps & ButtonEvents, ButtonSlots> {
}

declare global {
    namespace UniHelper {
        type UvButtonOpenType = ButtonOpenType;
        type UvButtonProps = ButtonProps;
        type UvButtonEvents = ButtonEvents;
        type UvButton = _Button;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvButton: _Button;
    }
}

interface Action {
    /**
     * 小程序的打开方式
     * @default ""
     */
    openType?: ButtonOpenType;
    /**
     * 该菜单是否禁用
     * @default false
     */
    disabled?: boolean;
    /**
     * 该菜单是否处于加载状态
     * @default false
     */
    loading?: boolean;
    /**
     * 该菜单的标题
     * @default ""
     */
    name?: string;
    /**
     * 该菜单的描述
     * @default ""
     */
    subname?: string;
    /**
     * 该菜单name文字的大小，单位px(rpx)
     * @default "16px"
     */
    fontSize?: string;
    /**
     * 该菜单name文字的颜色
     * @default "#303133"
     */
    color?: string;
}
interface ActionSheetProps {
    /**
     * 设置标题
     * @default ""
     */
    title?: string;
    /**
     * 选项上方的描述信息
     * @default ""
     */
    description?: string;
    /**
     * 按钮的文字数组
     * @default []
     */
    actions?: Action[];
    /**
     * 取消按钮的文字，不为空时显示按钮
     * @default ""
     */
    cancelText?: string;
    /**
     * 是否开启底部安全区适配
     * @default false
     */
    safeAreaInsetBottom?: boolean;
    /**
     * 点击遮罩是否允许关闭组件
     * @default true
     */
    closeOnClickOverlay?: boolean;
    /**
     * 点击某个菜单项时是否关闭组件
     * @default true
     */
    closeOnClickAction?: boolean;
    /**
     * 圆角值，默认无圆角
     * @default 0
     */
    round?: string | number;
    /**
     * 指定返回用户信息的语言
     * @default "en"
     */
    lang?: Lang;
    /**
     * 会话来源，open-type="contact"时有效。只微信小程序有效
     * @default ""
     */
    sessionFrom?: string;
    /**
     * 会话内消息卡片标题，openType="contact"时有效
     * @default ""
     */
    sendMessageTitle?: string;
    /**
     * 会话内消息卡片点击跳转小程序路径，openType="contact"时有效
     * @default ""
     */
    sendMessagePath?: string;
    /**
     * 会话内消息卡片图片，openType="contact"时有效
     * @default ""
     */
    sendMessageImg?: string;
    /**
     * 是否显示会话内消息卡片，设置此参数为 true，用户进入客服会话会在右下角显示"可能要发送的小程序"提示，用户点击后可以快速发送小程序消息，openType="contact"时有效
     * @default false
     */
    showMessageCard?: boolean;
    /**
     * 打开 APP 时，向 APP 传递的参数，openType=launchApp 时有效
     * @default ""
     */
    appParameter?: string;
}
interface ActionSheetEvents {
    /**
     * 点击ActionSheet列表项时触发
     */
    ["onSelect"]?: (e: any) => any;
    /**
     * 点击取消按钮时触发。点击遮罩触发该事件需要设置:closeOnClickOverlay="true"
     */
    ["onClose"]?: () => any;
    /**
     * 用户点击该按钮时，会返回获取到的用户信息，回调的 detail 数据与 wx.getUserInfo 返回的一致，openType="getUserInfo"时有效
     */
    ["onGetuserinfo"]?: (...args: any[]) => any;
    /**
     * 获取用户手机号回调，openType="getPhoneNumber"时有效
     */
    ["onGetphonenumber"]?: (...args: any[]) => any;
    /**
     * 当使用开放能力时，发生错误的回调，openType="error"时有效
     */
    ["onError"]?: (...args: any[]) => any;
    /**
     * 打开 APP 成功的回调，openType="launchApp"时有效
     */
    ["onLaunchapp"]?: (...args: any[]) => any;
    /**
     * 在打开授权设置页后回调，openType="openSetting"时有效
     */
    ["onOpensetting"]?: (...args: any[]) => any;
}
interface _ActionSheet extends BaseComponent<ActionSheetProps & ActionSheetEvents> {
}
interface ActionSheetInstance {
    /**
     * 弹出操作菜单组件
     */
    open: () => any;
    /**
     * 关闭操作菜单组件
     */
    close: () => any;
}

declare global {
    namespace UniHelper {
        type UvActionSheetActionItem = Action;
        type UvActionSheetProps = ActionSheetProps;
        type UvActionSheetEvents = ActionSheetEvents;
        type UvActionSheet = _ActionSheet;
        type UvActionSheetInstance = ActionSheetInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvActionSheet: _ActionSheet;
    }
}

interface AlbumProps {
    /**
     * 图片地址列表
     * @description 支持 Array<String> | Array<Object>形式
     * @default ""
     */
    urls?: (string | Record<string, any>)[];
    /**
     * 指定从数组的对象元素中读取哪个属性作为图片地址
     * @default ""
     */
    keyName?: string;
    /**
     * 单图时，图片长边的长度
     * @default 180
     */
    singleSize?: string | number;
    /**
     * 多图时，图片边长
     * @default 70
     */
    multipleSize?: string | number;
    /**
     * 多图时，图片水平和垂直之间的间隔
     * @default 6
     */
    space?: string | number;
    /**
     * 单图时，图片缩放裁剪的模式
     * @default "scaleToFill"
     */
    singleMode?: ImageMode;
    /**
     * 多图时，图片缩放裁剪的模式
     * @default "aspectFill"
     */
    multipleMode?: ImageMode;
    /**
     * 最多展示的图片数量，超出时最后一个位置将会显示剩余图片数量
     * @default 9
     */
    maxCount?: string | number;
    /**
     * 是否可以预览图片
     * @default true
     */
    previewFullImage?: boolean;
    /**
     * 每行展示图片数量，如设置，singleSize和multipleSize将会无效
     * @default 3
     */
    rowCount?: string | number;
    /**
     * 超出maxCount时是否显示查看更多的提示
     * @default true
     */
    showMore?: boolean;
}
interface AlbumEvents {
    /**
     * 某些特殊的情况下，需要让文字与相册的宽度相等，这里事件的形式对外发送
     */
    onAlbumWidth?: (width: string | number) => any;
}
interface _Album extends BaseComponent<AlbumProps & AlbumEvents> {
}

declare global {
    namespace UniHelper {
        type UvAlbumProps = AlbumProps;
        type UvAlbumEvents = AlbumEvents;
        type UvAlbum = _Album;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvAlbum: _Album;
    }
}

interface AlertProps {
    /**
     * 显示的文字
     * @default ""
     */
    title?: string;
    /**
     * 使用预设的颜色
     * @default "warning"
     */
    type?: ColorType;
    /**
     * 辅助性文字，颜色比title浅一点，字号也小一点，可选
     * @default ""
     */
    description?: string;
    /**
     * 关闭按钮(默认为叉号icon图标)
     * @default false
     */
    closable?: boolean;
    /**
     * 是否显示左边的辅助图标
     * @default false
     */
    showIcon?: boolean;
    /**
     * 主题
     */
    effect?: Effect;
    /**
     * 文字是否居中
     * @default false
     */
    center?: boolean;
    /**
     * 字体大小，单位rpx或px
     * @default 14
     */
    fontSize?: string | number;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface AlertEvents {
    /**
     * 点击组件时触发
     */
    ["onClick"]?: () => any;
}
interface _Alert extends BaseComponent<AlertProps & AlertEvents> {
}

declare global {
    namespace UniHelper {
        type UvAlertProps = AlertProps;
        type UvAlertEvents = AlertEvents;
        type UvAlert = _Alert;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvAlert: _Alert;
    }
}

interface AvatarProps {
    /**
     * 头像路径，如加载失败，将会显示默认头像(不能为相对路径)
     * @default ""
     */
    src?: string;
    /**
     * 头像形状
     * @default "circle"
     */
    shape?: Shape;
    /**
     * 头像尺寸，可以为指定字符串(large, default, mini)，或者数值
     * @default 40
     */
    size?: string | number;
    /**
     * 头像图片的裁剪类型，与uni的image组件的mode参数一致，如效果达不到需求，可尝试传widthFix值
     * @default "scaleToFill"
     */
    mode?: ImageMode;
    /**
     * 用文字替代图片，级别优先于src
     * @default ""
     */
    text?: string;
    /**
     * 背景颜色，一般显示文字时用
     * @default "#c0c4cc"
     */
    bgColor?: string;
    /**
     * 文字颜色
     * @default "#ffffff"
     */
    color?: string;
    /**
     * 文字大小
     * @default 18
     */
    fontSize?: string | number;
    /**
     * 显示的图标
     * @default ""
     */
    icon?: string;
    /**
     * 显示小程序头像，只对百度，微信，QQ小程序有效
     * @default false
     */
    mpAvatar?: boolean;
    /**
     * 是否使用随机背景色
     * @default false
     */
    randomBgColor?: boolean;
    /**
     * 加载失败的默认头像(组件有内置默认图片)
     * @default ""
     */
    defaultUrl?: string;
    /**
     * 如果配置了randomBgColor为true，且配置了此值，则从默认的背景色数组中取出对应索引的颜色值，取值0-19之间
     * @default ""
     */
    colorIndex?: string | number;
    /**
     * 组件标识符
     * @default "level"
     */
    name?: string;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface AvatarEvents {
    /**
     * 头像被点击
     * @param {string} index 用户传递的标识符
     */
    ["onClick"]?: (index: string) => any;
}
interface _Avatar extends BaseComponent<AvatarProps & AvatarEvents> {
}

declare global {
    namespace UniHelper {
        type UvAvatarProps = AvatarProps;
        type UvAvatarEvents = AvatarEvents;
        type UvAvatar = _Avatar;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvAvatar: _Avatar;
    }
}

interface AvatarGroupProps {
    /**
     * 头像图片组
     * @default []
     */
    urls?: string[];
    /**
     * 最多展示的头像数量
     * @default 5
     */
    maxCount?: string | number;
    /**
     * 头像形状
     * @default "circle"
     */
    shape?: Shape;
    /**
     * 图片裁剪模式
     * @default "aspectFill"
     */
    mode?: ImageMode;
    /**
     * 超出maxCount时是否显示查看更多的提示
     * @default true
     */
    showMore?: boolean;
    /**
     * 头像大小
     * @default 40
     */
    size?: string | number;
    /**
     * 指定从数组的对象元素中读取哪个属性作为图片地址
     * @default ""
     */
    keyName?: string;
    /**
     * 头像之间的遮挡比例（0.4代表遮挡40%）
     * @default 0.5
     */
    gap?: string | number;
    /**
     * 需额外显示的值，如设置则优先于内部的urls.length - maxCount值
     * @default ""
     */
    extraValue?: string | number;
}
interface AvatarGroupEvents {
    /**
     * 头像组更多点击
     */
    ["onShowMore"]?: () => any;
}
interface _AvatarGroup extends BaseComponent<AvatarGroupProps & AvatarGroupEvents> {
}

declare global {
    namespace UniHelper {
        type UvAvatarGroupProps = AvatarGroupProps;
        type UvAvatarGroupEvents = AvatarGroupEvents;
        type UvAvatarGroup = _AvatarGroup;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvAvatarGroup: _AvatarGroup;
    }
}

interface BackTopProps {
    /**
     * 按钮形状
     * @default "circle"
     */
    mode?: Shape;
    /**
     * uv-ui内置图标名称，或图片路径
     * @default "arrow-upward"
     */
    icon?: string;
    /**
     * 返回顶部按钮的提示文字
     * @default ""
     */
    text?: string;
    /**
     * 返回顶部过程中的过渡时间，单位ms
     * @default 100
     */
    duration?: string | number;
    /**
     * 页面的滚动距离，通过onPageScroll生命周期获取
     * @default 0
     */
    scrollTop?: string | number;
    /**
     * 滚动条滑动多少距离时显示，单位px(rpx)
     * @default 400
     */
    top?: string | number;
    /**
     * 返回按钮位置到屏幕底部的距离，单位px(rpx)
     * @default 100
     */
    bottom?: string | number;
    /**
     * 返回按钮位置到屏幕右边的距离，单位px(rpx)
     * @default 20
     */
    right?: string | number;
    /**
     * 返回顶部按钮的层级
     * @default 9
     */
    zIndex?: string | number;
    /**
     * 图标的样式，对象形式
     * @default ""
     */
    iconStyle?: Record<string, any>;
    /**
     * 按钮外层的自定义样式
     */
    customStyle?: string | Record<string, any>;
}
interface BackTopSlots {
    /**
     * 自定义返回按钮的所有内容
     */
    ["default"]?: () => any;
}
interface _BackTop extends BaseComponent<BackTopProps, BackTopSlots> {
}
interface BackTopInstance {
    /**
     * 自定义内容的时，可以调用此方法返回顶部
     */
    backToTop: () => any;
}

declare global {
    namespace UniHelper {
        type UvBackTopProps = BackTopProps;
        type UvBackTop = _BackTop;
        type UvBackTopInstance = BackTopInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvBackTop: _BackTop;
    }
}

type BadgeShape = "circle" | "horn";
type BadgeNumberType = "overflow" | "ellipsis" | "limit";
interface BadgeProps {
    /**
     * 展示的数字，大于 max 时显示为 ${max}+；为0且show-zero为false时隐藏
     * @default ""
     */
    value?: string | number;
    /**
     * 不展示数字，只有一个小点
     * @default false
     */
    isDot?: boolean;
    /**
     * 组件是否显示
     * @default true
     */
    show?: boolean;
    /**
     * 最大值，超过最大值会显示 '{max}+'
     * @default 99
     */
    max?: string | number;
    /**
     * 主题类型
     * @default "error"
     */
    type?: ColorType;
    /**
     * 当数值为 0 时，是否展示 Badge
     * @default false
     */
    showZero?: boolean;
    /**
     * 背景颜色，优先级比type高。如设置该属性，type参数就会失效
     * @default ""
     */
    bgColor?: string;
    /**
     * 字体颜色
     * @default "#ffffff"
     */
    color?: string;
    /**
     * 徽标形状
     * @default "circle"
     */
    shape?: BadgeShape;
    /**
     * 置数字的显示方式
     * @default "overflow"
     */
    numberType?: BadgeNumberType;
    /**
     * 是否反转背景和字体颜色
     * @default false
     */
    inverted?: boolean;
    /**
     * 组件是否绝对定位，为true时，offset参数才有效
     * @default false
     */
    absolute?: boolean;
    /**
     * 设置badge的位置偏移，格式为 [x, y]，也即设置的为top和right的值，absolute为true时有效
     * @default ""
     */
    offset?: (string | number)[];
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface _Badge extends BaseComponent<BadgeProps> {
}

declare global {
    namespace UniHelper {
        type UvBadgeProps = BadgeProps;
        type UvBadge = _Badge;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvBadge: _Badge;
    }
}

type CalendarMode = "single" | "multiple" | "range";
interface Day {
    bottomInfo?: string;
    /**
     * 日期
     */
    date?: Date;
    /**
     * 天数
     */
    day?: number;
    /**
     * 是否禁止点击该日期
     */
    disabled?: boolean;
    /**
     * 是否显示右上角红点
     */
    dot?: boolean;
    /**
     * 月份
     */
    month?: number;
    /**
     * 头部文案
     */
    topInfo?: string;
    /**
     * 星期几
     */
    week?: number;
}
interface CalendarProps {
    /**
     * 标题内容
     * @default "日期选择"
     */
    title?: string;
    /**
     * 是否显示标题
     * @default true
     */
    showTitle?: boolean;
    /**
     * 是否显示副标题
     * @default true
     */
    showSubtitle?: boolean;
    /**
     * 日期类型选择
     * @description multiple-可以选择多个日期，range-选择日期范围（多个月需配合monthNum属性使用）
     * @default "single"
     */
    mode?: CalendarMode;
    /**
     * mode=range时，第一个日期底部的提示文字
     * @default "开始"
     */
    startText?: string;
    /**
     * mode=range时，最后一个日期底部的提示文字
     * @default "结束"
     */
    endText?: string;
    /**
     * 自定义列表
     * @default []
     */
    customList?: string[];
    /**
     * 主题色，对底部按钮和选中日期有效
     * @default "#3c9cff"
     */
    color?: string;
    /**
     * 最小的可选日期
     * @default 0
     */
    minDate?: string | number;
    /**
     * 最大可选日期
     * @default 0
     */
    maxDate?: string | number;
    /**
     * 默认选中的日期，mode为multiple或range是必须为数组格式
     * @default null
     */
    defaultDate?: string | Date | (string | Date)[];
    /**
     * mode=multiple时，最多可选多少个日期
     * @default Number.MAX_SAFE_INTEGER
     */
    maxCount?: string | number;
    /**
     * 日期行高
     * @default 56
     */
    rowHeight?: string | number;
    /**
     * 是否显示农历
     * @default false
     */
    showLunar?: boolean;
    /**
     * 是否显示月份背景色
     * @default true
     */
    showMark?: boolean;
    /**
     * 确定按钮的文字
     * @default "确定"
     */
    confirmText?: string;
    /**
     * 确认按钮处于禁用状态时的文字
     * @default "确定"
     */
    confirmDisabledText?: string;
    /**
     * 是否允许点击遮罩关闭日历
     * @description （注意：关闭事件需要自行处理，只会在开启closeOnClickOverlay后点击遮罩层执行close回调）
     * @default false
     */
    closeOnClickOverlay?: boolean;
    /**
     * 是否允许点击确认按钮关闭日历
     * @description 设置为false不影响confirm事件返回
     * @default true
     */
    closeOnClickConfirm?: boolean;
    /**
     * 是否为只读状态
     * @description 只读状态下禁止选择日期
     * @default false
     */
    readonly?: boolean;
    /**
     * 日期区间最多可选天数
     * @description 默认无限制，mode = range时有效
     * @default 无限制
     */
    maxRange?: string | number;
    /**
     * 范围选择超过最多可选天数时的提示文案
     * @description mode = range时有效
     * @default "选择天数不能超过 xx 天"
     */
    rangePrompt?: string;
    /**
     * 范围选择超过最多可选天数时，是否展示提示文案
     * @description mode = range时有效
     * @default true
     */
    showRangePrompt?: boolean;
    /**
     * 是否允许日期范围的起止时间为同一天
     * @description mode = range时有效
     * @default false
     */
    allowSameDay?: boolean;
    /**
     * 圆角值
     * @description 默认无圆角
     * @default 0
     */
    round?: string | number;
    /**
     * 最大展示的月份数量
     * @default 3
     */
    monthNum?: string | number;
}
interface CalendarEvents {
    /**
     * 日期选择完成后触发，若show-confirm为true，则点击确认按钮后触发
     */
    ["onConfirm"]?: (...args: any[]) => any;
    /**
     * 日历关闭时触发
     */
    ["onClose"]?: (...args: any[]) => any;
    /**
     * 点击日期触发
     */
    ["onChange"]?: (...args: any[]) => any;
}
interface _Calendar extends BaseComponent<CalendarProps & CalendarEvents> {
}
interface CalendarInstance {
    /**
     * 弹出日历组件
     */
    open: () => any;
    /**
     * 关闭日历组件，可能在:confirmClosePopup = "false"用到
     */
    close: () => any;
    /**
     * 日期格式化函数
     */
    setFormatter: (formatter: (day: Day) => Day) => any;
}

declare global {
    namespace UniHelper {
        type UvCalendarProps = CalendarProps;
        type UvCalendarEvents = CalendarEvents;
        type UvCalendar = _Calendar;
        type UvCalendarInstance = CalendarInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCalendar: _Calendar;
    }
}

type CalendarsMode = "multiple" | "range";
interface SelectedItem {
    /**
     * 日期，格式：YYYY-mm-dd
     */
    date?: string;
    /**
     * 底部文案
     */
    info?: string;
    /**
     * 底部文案颜色
     */
    infoColor?: string;
    /**
     * 头部文案
     */
    topinfo?: string;
    /**
     * 头部文案颜色
     */
    topinfoColor?: string;
    /**
     * 是否显示右上角红点
     */
    badge?: boolean;
    /**
     * 是否禁止点击该日期
     */
    disable?: boolean;
}
interface CalendarsProps {
    /**
     * 自定义默认选中日期
     * @description 不传默认为今天。mode="multiple"或mode="range"时，该值为数组，例 ['2023-08-26','2023-08-29']。mode不传或字符串，例如2023-08-26，即为单日期模式
     * @default new Date()
     */
    date?: string;
    /**
     * 显示农历
     * @default false
     */
    lunar?: boolean;
    /**
     * 日期类型选择
     * @description 可选值：不填 | multiple | range，分别为单日期选择，多日期选择，范围选择
     * @default ""
     */
    mode?: CalendarsMode;
    /**
     * 插入模式
     * @description 可选值，true：插入模式；false：弹窗模式；默认为插入模式
     * @default false
     */
    insert?: boolean;
    /**
     * 弹窗模式是否清空上次选择内容
     * @default true
     */
    clearDate?: boolean;
    /**
     * 打点
     * @description 期待格式[{date: '2019-06-27', info: '签到', disable: false}]
     * @default ""
     */
    selected?: SelectedItem[];
    /**
     * 日期选择范围-开始日期
     * @description 格式如："2023-01-01"
     * @default ""
     */
    startDate?: string;
    /**
     * 日期选择范围-结束日期
     * @description 格式如："2023-02-01"
     * @default ""
     */
    endDate?: string;
    /**
     * 是否显示月份为背景
     * @default true
     */
    showMonth?: boolean;
    /**
     * 弹窗模式，圆角
     * @default "8px"
     */
    round?: string | number;
    /**
     * 主题颜色
     * @default "#3c9cff"
     */
    color?: string;
    /**
     * 确认按钮颜色
     * @default "#3c9cff"
     */
    confirmColor?: string;
    /**
     * 取消按钮颜色
     * @default "#909193"
     */
    cancelColor?: string;
    /**
     * 点击遮罩是否关闭弹窗
     * @default true
     */
    closeOnClickOverlay?: boolean;
    /**
     * range为true时，第一个日期底部的提示文字
     * @default "开始"
     */
    startText?: string;
    /**
     * range为true时，最后一个日期底部的提示文字
     * @default "结束"
     */
    endText?: string;
    /**
     * 是否允许日期范围的起止时间为同一天，mode = range时有效
     * @version `1.0.11`
     * @default false
     */
    allowSameDay?: boolean;
    /**
     * 是否为只读状态，只读状态下禁止选择日期
     * @version `1.0.15`
     * @default false
     */
    readonly?: boolean;
}
interface CalendarsEvents {
    /**
     * 点击确定按钮触发，返回日期相关参数
     */
    ["onConfirm"]?: (...args: any[]) => any;
    /**
     * 关闭日历时触发
     */
    ["onClose"]?: () => any;
    /**
     * 点击日期时触发，返回日期相关参数
     */
    ["onChange"]?: (...args: any[]) => any;
    /**
     * 选择年月确认时触发，参数格式 `{ year: 2030, month: '08' }`
     */
    ["onMonthSwitch"]?: (...args: any[]) => any;
}
interface _Calendars extends BaseComponent<CalendarsProps & CalendarsEvents> {
}
interface CalendarsInstance {
    /**
     * `insert` 为 `false` 时，调用此方法弹出日历组件
     */
    open: () => any;
}

declare global {
    namespace UniHelper {
        type UvCalendarsMode = CalendarsMode;
        type UvCalendarsSelectedItem = SelectedItem;
        type UvCalendarsProps = CalendarsProps;
        type UvCalendarsEvents = CalendarsEvents;
        type UvCalendarsInstance = CalendarsInstance;
        type UvCalendars = _Calendars;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCalendars: _Calendars;
    }
}

type CellArrowDirection = "left" | "right" | "up" | "down";
type CellSize = "large" | "normal";
interface CellProps {
    /**
     * 左侧标题
     * @default ""
     */
    title?: string | number;
    /**
     * 标题下方的描述信息
     * @default ""
     */
    label?: string | number;
    /**
     * 右侧的内容
     * @default ""
     */
    value?: string | number;
    /**
     * 左侧图标名称，或者图片链接(本地文件建议使用绝对地址)
     * @default ""
     */
    icon?: string;
    /**
     * 是否禁用cell
     * @default false
     */
    disabled?: boolean;
    /**
     * 是否显示下边框
     * @default true
     */
    border?: boolean;
    /**
     * 内容是否垂直居中(主要是针对右侧的value部分)
     * @default false
     */
    center?: boolean;
    /**
     * 点击后跳转的URL地址
     * @default ""
     */
    url?: string;
    /**
     * 链接跳转的方式，内部使用的是uv-ui封装的route方法，可能会进行拦截操作
     * @default "navigateTo"
     */
    linkType?: LinkType;
    /**
     * 是否开启点击反馈(表现为点击时加上灰色背景)
     * @default false
     */
    clickable?: boolean;
    /**
     * 是否展示右侧箭头并开启点击反馈
     * @default false
     */
    isLink?: boolean;
    /**
     * 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件)
     * @default false
     */
    required?: boolean;
    /**
     * 右侧的图标箭头
     * @default "arrow-right"
     */
    rightIcon?: string;
    /**
     * 右侧箭头的方向
     * @default "right"
     */
    arrowDirection?: CellArrowDirection;
    /**
     * 左侧图标样式
     * @default ""
     */
    iconStyle?: string | Record<string, any>;
    /**
     * 右侧箭头图标的样式
     * @default ""
     */
    rightIconStyle?: string | Record<string, any>;
    /**
     * 标题的样式
     * @default ""
     */
    titleStyle?: string | Record<string, any>;
    /**
     * 单位元的大小
     * @default ""
     */
    size?: CellSize;
    /**
     * 点击cell是否阻止事件传播
     * @default true
     */
    stop?: boolean;
    /**
     * 标识符，用于在click事件中进行返回
     * @default ""
     */
    name?: string | number;
    /**
     * 自定义单元格样式，如：设置padding等样式。如果想在isLink为true状态下不表现出点击态，可以使用此属性设置背景颜色
     * @default ""
     */
    cellStyle?: string | Record<string, any>;
    /**
     * 自定义外部样式，如：设置边框等样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface CellEvents {
    /**
     * 点击cell列表时触发
     * @param {string|number} name props的name参数标识符
     */
    ["onClick"]?: (name: string | number) => any;
}
interface CellSlots {
    /**
     * 自定义左侧标题部分的内容，如需使用，请勿定义title参数，或赋值null即可
     */
    ["title"]?: () => any;
    /**
     * 自定义右侧内容，如需使用，请勿定义value参数，或赋值null即可
     */
    ["value"]?: () => any;
    /**
     * 自定义左侧的图标
     */
    ["icon"]?: () => any;
    /**
     * 自定义右侧图标内容，需设置arrow为false才起作用
     */
    ["right-icon"]?: () => any;
    /**
     * 自定义标题下方的描述内容
     */
    ["label"]?: () => any;
}
interface _Cell extends BaseComponent<CellProps & CellEvents, CellSlots> {
}

declare global {
    namespace UniHelper {
        type UvCellProps = CellProps;
        type UvCellEvents = CellEvents;
        type UvCell = _Cell;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCell: _Cell;
    }
}

interface CellGroupProps {
    /**
     * 分组标题
     * @default ""
     */
    title?: string;
    /**
     * 是否显示分组标题的下边框
     * @default true
     */
    border?: boolean;
    /**
     * 用户自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface _CellGroup extends BaseComponent<CellGroupProps> {
}

declare global {
    namespace UniHelper {
        type UvCellGroupProps = CellGroupProps;
        type UvCellGroup = _CellGroup;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCellGroup: _CellGroup;
    }
}

interface CheckboxProps {
    /**
     * checkbox的名称
     * @default ""
     */
    name?: string | number | boolean;
    /**
     * 形状
     * @default "square"
     */
    shape?: Shape;
    /**
     * 整体的大小
     * @default ""
     */
    size?: string | number;
    /**
     * 是否默认选中
     * @default false
     */
    checked?: boolean;
    /**
     * 是否禁用
     * @default false
     */
    disabled?: boolean;
    /**
     * 选中状态下的颜色，如设置此值，将会覆盖parent的activeColor值
     * @default ""
     */
    activeColor?: string;
    /**
     * 未选中的颜色
     * @default ""
     */
    inactiveColor?: string;
    /**
     * 图标的大小，单位px
     * @default ""
     */
    iconSize?: string | number;
    /**
     * 图标颜色
     * @default ""
     */
    iconColor?: string;
    /**
     * label提示文字
     * @default ""
     */
    label?: string;
    /**
     * label的字体大小，px单位
     * @default ""
     */
    labelSize?: string | number;
    /**
     * label的颜色
     * @default ""
     */
    labelColor?: string;
    /**
     * 是否禁止点击提示语选中复选框
     * @default false
     */
    labelDisabled?: boolean;
}
interface CheckboxEvents {
    /**
     * 某个checkbox状态发生变化时触发(选中状态)
     * @param {string|number|boolean} name 通过props传递的name参数
     */
    ["onChange"]?: (name: string | number | boolean) => any;
}
interface CheckboxSlots {
    /**
     * 自定义label内容，自定义后，labelDisabled设置将会失效
     */
    ["default"]?: () => any;
    /**
     * 自定义选中图标
     */
    ["icon"]?: () => any;
}
interface _Checkbox extends BaseComponent<CheckboxProps & CheckboxEvents, CheckboxSlots> {
}

declare global {
    namespace UniHelper {
        type UvCheckboxProps = CheckboxProps;
        type UvCheckboxEvents = CheckboxEvents;
        type UvCheckbox = _Checkbox;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCheckbox: _Checkbox;
    }
}

type CheckboxGroupIconPlacement = "left" | "right";
interface CheckboxGroupProps {
    /**
     * 选中name的值，eg：['a','b']
     * @default []
     */
    value?: string[];
    /**
     * 形状
     * @default "square"
     */
    shape?: Shape;
    /**
     * 是否禁用全部checkbox
     * @default false
     */
    disabled?: boolean;
    /**
     * 选中状态下的颜色，如子Checkbox组件设置此值，将会覆盖本值
     * @default "#2979ff"
     */
    activeColor?: string;
    /**
     * 未选中的颜色
     * @default "#c8c9cc"
     */
    inactiveColor?: string;
    /**
     * 整个组件的尺寸，默认px。**注意：该参数和iconSize应该同步设置，才能改变选框大小**
     * @default 18
     */
    size?: string | number;
    /**
     * 布局方式
     * @default "row"
     */
    placement?: Direction;
    /**
     * label的字体大小，px单位
     * @default 14
     */
    labelSize?: string | number;
    /**
     * label的字体颜色
     * @default "#303133"
     */
    labelColor?: string;
    /**
     * 是否禁止点击文本操作
     * @default false
     */
    labelDisabled?: boolean;
    /**
     * 图标颜色
     * @default "#ffffff"
     */
    iconColor?: string;
    /**
     * 图标的大小，单位px
     * @default 12
     */
    iconSize?: string | number;
    /**
     * 勾选图标的对齐方式
     * @default "left"
     */
    iconPlacement?: CheckboxGroupIconPlacement;
    /**
     * 竖向配列时，是否显示下划线
     * @default false
     */
    borderBottom?: boolean;
    /**
     * 自定义样式，某些事件需要用到调整位置等作用
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface CheckGroupEvents {
    /**
     * 任一个checkbox状态发生变化时触发，回调为一个对象
     */
    ["onChange"]?: (...args: any[]) => any;
}
interface _CheckGroup extends BaseComponent<CheckboxGroupProps & CheckGroupEvents> {
}

declare global {
    namespace UniHelper {
        type UvCheckboxGroupProps = CheckboxGroupProps;
        type UvCheckboxGroupEvents = CheckGroupEvents;
        type UvCheckboxGroup = _CheckGroup;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCheckboxGroup: _CheckGroup;
    }
}

interface CodeProps {
    /**
     * 倒计时所需的秒数
     * @default 60
     */
    seconds?: string | number;
    /**
     * 开始前的提示语
     * @default "获取验证码"
     */
    startText?: string;
    /**
     * 倒计时期间的提示语，必须带有字母"x"
     * @default "X秒重新获取"
     */
    changeText?: string;
    /**
     * 倒计结束的提示语
     * @default "重新获取"
     */
    endText?: string;
    /**
     * 是否在H5刷新或各端返回再进入时继续倒计时
     * @default false
     */
    keepRunning?: boolean;
    /**
     * 多个组件之间继续倒计时的区分key，见上方说明
     * @default ""
     */
    uniqueKey?: string;
}
interface CodeEvents {
    /**
     * 倒计时期间，每秒触发一次
     * @param {string} text 当前剩余多少秒的状态
     */
    ["onChange"]?: (text: string) => any;
    /**
     * 开始倒计时触发
     */
    ["onStart"]?: () => any;
    /**
     * 结束倒计时触发
     */
    ["onEnd"]?: () => any;
}
interface _Code extends BaseComponent<CodeProps & CodeEvents> {
}
interface CodeInstance {
    /**
     * 开始倒计时
     */
    start: () => any;
    /**
     * 结束当前正在进行中的倒计时，设置组件为可以重新获取验证码的状态
     */
    reset: () => any;
    /**
     * 获取当前倒计时状态
     */
    canGetCode: boolean;
}

declare global {
    namespace UniHelper {
        type UvCodeProps = CodeProps;
        type UvCodeEvents = CodeEvents;
        type UvCode = _Code;
        type UvCodeInstance = CodeInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCode: _Code;
    }
}

type CodeInputMode = "box" | "line";
interface CodeInputProps {
    /**
     * 预置值
     * @default ""
     */
    value?: string | number;
    /**
     * 键盘弹起时，是否自动上推页面
     * @default true
     */
    adjustPosition?: boolean;
    /**
     * 输入字符个数
     */
    maxlength?: string | number;
    /**
     * 是否用圆点填充
     * @default false
     */
    dot?: boolean;
    /**
     * 模式选择
     * @default "box"
     */
    mode?: CodeInputMode;
    /**
     * 是否细边框
     * @default false
     */
    hairline?: boolean;
    /**
     * 字符间的距离
     * @default 10
     */
    space?: string | number;
    /**
     * 是否自动获取焦点
     * @default false
     */
    focus?: boolean;
    /**
     * 字体和输入横线是否加粗
     * @default false
     */
    bold?: boolean;
    /**
     * 字体颜色
     * @default "#606266"
     */
    color?: string;
    /**
     * 字体大小，单位rpx
     * @default 18
     */
    fontSize?: string | number;
    /**
     * 输入框的大小，宽等于高
     * @default 35
     */
    size?: string | number;
    /**
     * 禁止点击输入框唤起系统键盘，自定义键盘改值必须为true
     * @default false
     */
    disabledKeyboard?: boolean;
    /**
     * 边框和线条颜色
     * @default "#c9cacc"
     */
    borderColor?: string;
    /**
     * 是否禁止输入"."符号
     * @default true
     */
    disabledDot?: boolean;
}
interface CodeInputEvents {
    /**
     * 输入内容发生改变时触发
     * @param {string} value 当前输入的值
     */
    ["onChange"]?: (value: string) => any;
    /**
     * 输入字符个数达maxlength值时触发
     * @param {string} value 当前输入的值
     */
    ["onFinish"]?: (value: string) => any;
}
interface _CodeInput extends BaseComponent<CodeInputProps & CodeInputEvents> {
}

declare global {
    namespace UniHelper {
        type UvCodeInputProps = CodeInputProps;
        type UvCodeInputEvents = CodeInputEvents;
        type UvCodeInput = _CodeInput;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCodeInput: _CodeInput;
    }
}

type RowJustify = "start" | "flex-start" | "end" | "flex-end" | "center" | "around" | "space-around" | "between" | "space-between";
type RowAlign = "top" | "center" | "bottom";
interface RowProps {
    /**
     * 栅格间隔，左右各为此值的一半，单位任意
     * @default 0
     */
    gutter?: string | number;
    /**
     * 水平排列方式(微信小程序暂不支持)
     * @default "start"
     */
    justify?: RowJustify;
    /**
     * 垂直对齐方式
     * @default "center"
     */
    align?: RowAlign;
}
interface RowEvents {
    /**
     * 点击触发事件
     */
    ["onClick"]?: () => any;
}
interface _Row extends BaseComponent<RowProps & RowEvents> {
}

declare global {
    namespace UniHelper {
        type UvRowJustify = RowJustify;
        type UvRowProps = RowProps;
        type UvRowEvents = RowEvents;
        type UvRow = _Row;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvRow: _Row;
    }
}

type ColAlign = "top" | "center" | "bottom" | "stretch";
type ColTextAlign = "left" | "center" | "right";
interface ColProps {
    /**
     * 栅格占据的列数，总12等分
     * @default 0
     */
    span?: string | number;
    /**
     * 分栏左边偏移，计算方式与span相同
     * @default 0
     */
    offset?: string | number;
    /**
     * 水平排列方式
     * @default "start"
     */
    justify?: RowJustify;
    /**
     * 垂直对齐方式
     * @default "stretch"
     */
    align?: ColAlign;
    /**
     * 文字水平对齐方式
     * @default "left"
     */
    textAlign?: ColTextAlign;
}
interface ColEvents {
    /**
     * col被点击，会阻止事件冒泡到row
     */
    ["onClick"]?: () => any;
}
interface _Col extends BaseComponent<ColProps & ColEvents> {
}

declare global {
    namespace UniHelper {
        type UvColProps = ColProps;
        type UvColEvents = ColEvents;
        type UvCol = _Col;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCol: _Col;
    }
}

interface CollapseProps {
    /**
     * 当前展开面板uv-collapse-item属性name，非手风琴模式必须为数组，eg：['2']。手风琴模式为字符串或数字。
     * @default ""
     */
    value?: string | number | string[];
    /**
     * 是否手风琴模式
     * @default false
     */
    accordion?: boolean;
    /**
     * 是否显示外边框
     * @default true
     */
    border?: boolean;
}
interface CollapseEvents {
    /**
     * 当前激活面板展开/关闭时触发
     * @param {string|string[]} activeNames 如果是手风琴模式，类型为String，否则为Array
     */
    ["onChange"]?: (activeNames: string | string[]) => any;
    /**
     * 当前激活面板展开时触发
     * @param {string|string[]} activeNames 如果是手风琴模式，类型为String，否则为Array
     */
    ["onOpen"]?: (activeNames: string | string[]) => any;
    /**
     * 当前激活面板关闭时触发
     * @param {string|string[]} activeNames 如果是手风琴模式，类型为String，否则为Array
     */
    ["onClose"]?: (activeNames: string | string[]) => any;
}
interface _Collapse extends BaseComponent<CollapseProps & CollapseEvents> {
}
interface CollapseInstance {
    /**
     * 重新初始化内部高度计算，用于异步获取内容的情形，请结合this.$nextTick()使用
     */
    init: () => any;
}

declare global {
    namespace UniHelper {
        type UvCollapseProps = CollapseProps;
        type UvCollapseEvents = CollapseEvents;
        type UvCollapse = _Collapse;
        type UvCollapseInstance = CollapseInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCollapse: _Collapse;
    }
}

interface CollapseItemProps {
    /**
     * 面板标题
     * @default ""
     */
    title?: string;
    /**
     * 标题右侧内容
     * @default ""
     */
    value?: string;
    /**
     * 是否禁止面板的展开和收起
     * @default false
     */
    disabled?: boolean;
    /**
     * 是否展示右侧箭头并开启点击反馈
     * @default true
     */
    isLink?: boolean;
    /**
     * 是否开启点击反馈
     * @default true
     */
    clickable?: boolean;
    /**
     * 是否显示内边框
     * @default true
     */
    border?: boolean;
    /**
     * 唯一标识符。如不设置，默认用当前collapse-item的索引值
     * @default ""
     */
    name?: string | number;
    /**
     * 标题左侧图标，可为绝对路径的图片或内置图标
     * @default ""
     */
    icon?: string;
    /**
     * 面板展开收起的过渡时间，单位ms
     * @default 300
     */
    duration?: number;
}
interface CollapseItemSlots {
    /**
     * 主体部分的内容
     */
    ["default"]?: () => any;
    /**
     * 标题内容
     */
    ["title"]?: () => any;
    /**
     * 左侧icon
     */
    ["icon"]?: () => any;
    /**
     * 右侧value
     */
    ["value"]?: () => any;
    /**
     * 右侧icon
     */
    ["right-icon"]?: () => any;
}
interface _CollapseItem extends BaseComponent<CollapseItemProps, CollapseItemSlots> {
}

declare global {
    namespace UniHelper {
        type UvCollapseItemProps = CollapseItemProps;
        type UvCollapseItem = _CollapseItem;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCollapseItem: _CollapseItem;
    }
}

interface CountDownProps {
    /**
     * 倒计时时长，单位ms
     * @default 0
     */
    time?: string | number;
    /**
     * 时间格式
     * @default "HH:mm:ss"
     */
    format?: string;
    /**
     * 是否自动开始倒计时
     * @default true
     */
    autoStart?: boolean;
    /**
     * 是否展示毫秒倒计时
     * @default false
     */
    millisecond?: boolean;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface CountDownEvents {
    /**
     * 过程中，倒计时变化时触发
     * @param {any} time 剩余的时间
     */
    ["onChange"]?: (time: any) => any;
    /**
     * 倒计时结束
     */
    ["onFinish"]?: () => any;
}
interface _CountDown extends BaseComponent<CountDownProps & CountDownEvents> {
}
interface CountDownInstance {
    /**
     * 开始倒计时
     */
    start: () => any;
    /**
     * 暂停倒计时
     */
    pause: () => any;
    /**
     * 重置倒计时
     */
    reset: () => any;
}

declare global {
    namespace UniHelper {
        type UvCountDownProps = CountDownProps;
        type UvCountDownEvents = CountDownEvents;
        type UvCountDownInstance = CountDownInstance;
        type UvCountDown = _CountDown;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCountDown: _CountDown;
    }
}

interface CountToProps {
    /**
     * 开始值
     * @default 0
     */
    startVal?: string | number;
    /**
     * 结束值
     * @default 0
     */
    endVal?: string | number;
    /**
     * 滚动过程所需的时间，单位ms
     * @default 2000
     */
    duration?: string | number;
    /**
     * 是否自动开始滚动
     * @default true
     */
    autoplay?: boolean;
    /**
     * 要显示的小数位数
     * @default 0
     */
    decimals?: string | number;
    /**
     * 小数位分割符号
     * @default "."
     */
    decimal?: string;
    /**
     * 滚动结束时，是否缓动结尾
     * @default true
     */
    useEasing?: boolean;
    /**
     * 字体颜色
     * @default "#606266"
     */
    color?: string;
    /**
     * 字体大小，单位默认px
     * @default 22
     */
    fontSize?: string | number;
    /**
     * 字体是否加粗
     * @default false
     */
    bold?: boolean;
    /**
     * 千位分隔符
     * @default ""
     */
    separator?: string;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface CountToEvents {
    /**
     * 数值滚动到目标值时触发
     */
    ["onEnd"]?: () => any;
}
interface _CountTo extends BaseComponent<CountToProps & CountToEvents> {
}
interface CountToInstance {
    /**
     * autoplay为false时，通过此方法启动滚动，调用即从头开始滚动
     */
    start: () => any;
    /**
     * 暂定状态，从暂停状态开始滚动；或者滚动状态下，暂停
     */
    restart: () => any;
    /**
     * 暂停滚动
     */
    stop: () => any;
}

declare global {
    namespace UniHelper {
        type UvCountToProps = CountToProps;
        type UvCountToEvents = CountToEvents;
        type UvCountTo = _CountTo;
        type UvCountToInstance = CountToInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvCountTo: _CountTo;
    }
}

type DatetimePickerMode = "datetime" | "date" | "time" | "year-month" | "year";
interface DatetimePickerProps {
    /**
     * 绑定值
     * @default ""
     */
    modelValue: string | number;
    /**
     * 是否显示顶部的操作栏
     * @default true
     */
    showToolbar?: boolean;
    /**
     * 顶部标题
     * @default ""
     */
    title?: string;
    /**
     * 弹窗圆角
     * @version `1.0.12`
     * @default 0
     */
    round?: string | number;
    /**
     * 展示格式
     * @default "datetime"
     */
    mode?: DatetimePickerMode;
    /**
     * 可选的最大时间（时间戳毫秒）
     * @default 最大默认值为后10年
     */
    maxDate?: number;
    /**
     * 是否清空上次选择
     * @default false
     */
    clearDate?: boolean;
    /**
     * 可选的最小时间（时间戳毫秒）
     * @default 最小默认值为前10年
     */
    minDate?: number;
    /**
     * 可选的最小小时，仅mode=time有效
     * @default 0
     */
    minHour?: number;
    /**
     * 可选的最大小时，仅mode=time有效
     * @default 23
     */
    maxHour?: number;
    /**
     * 可选的最小分钟，仅mode=time有效
     * @default 0
     */
    minMinute?: number;
    /**
     * 可选的最大分钟，仅mode=time有效
     * @default 59
     */
    maxMinute?: number;
    /**
     * 选项过滤函数
     * @default null
     */
    filter?: (type: "year" | "month" | "day", options: any[]) => any;
    /**
     * 输入过滤或格式化函数(如需兼容微信小程序，则只能通过setFormatter方法)，上方示例有具体用法
     * @default null
     */
    formatter?: (type: "year" | "month" | "day", value: number) => any;
    /**
     * 是否显示加载中状态
     * @default false
     */
    loading?: boolean;
    /**
     * 各列中，单个选项的高度
     * @default 44
     */
    itemHeight?: string | number;
    /**
     * 取消按钮的文
     * @default "取消"
     */
    cancelText?: string;
    /**
     * 确认按钮的文字
     * @default "确认"
     */
    confirmText?: string;
    /**
     * 取消按钮的颜色
     * @default "#909193"
     */
    cancelColor?: string;
    /**
     * 确认按钮的颜色
     * @default "#3c9cff"
     */
    confirmColor?: string;
    /**
     * 每列中可见选项的数量
     * @default 5
     */
    visibleItemCount?: string | number;
    /**
     * 是否允许点击遮罩关闭时间选择器
     * @default true
     */
    closeOnClickOverlay?: boolean;
    /**
     * 是否允许点击确认关闭时间选择器
     * @default true
     */
    closeOnClickConfirm?: boolean;
}
interface DatetimePickerEvents {
    /**
     * 点击确定按钮时触发
     * @param {number} value 所选时间戳
     * @param {DatetimePickerMode} mode 当前模式
     */
    ["onConfirm"]?: (value: number, mode: DatetimePickerMode) => any;
    /**
     * 当选择值变化时触发
     * @param {number} value 所选时间戳
     * @param {DatetimePickerMode} mode 当前模式
     */
    ["onChange"]?: (value: number, mode: DatetimePickerMode) => any;
    /**
     * 点击取消按钮
     */
    ["onCancel"]?: () => any;
    /**
     * 关闭选择器时触发
     */
    ["onClose"]?: () => any;
}
interface _DatetimePicker extends BaseComponent<DatetimePickerProps & DatetimePickerEvents> {
}
interface DatetimePickerInstance {
    /**
     * 弹出时间选择器组件
     */
    open: () => any;
    /**
     * 关闭时间选择器组件
     */
    close: () => any;
    /**
     * 格式化函数
     */
    setFormatter: (formatter: DatetimePickerProps["formatter"]) => any;
}

declare global {
    namespace UniHelper {
        type UvDatetimePickerMode = DatetimePickerMode;
        type UvDatetimePickerProps = DatetimePickerProps;
        type UvDatetimePickerEvents = DatetimePickerEvents;
        type UvDatetimePicker = _DatetimePicker;
        type UvDatetimePickerInstance = DatetimePickerInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvDatetimePicker: _DatetimePicker;
    }
}

type DividerTextPosition = "center" | "left" | "right";
interface DividerProps {
    /**
     * 是否虚线
     * @default false
     */
    dashed?: boolean;
    /**
     * 是否细线
     * @default true
     */
    hairline?: boolean;
    /**
     * 是否以点替代文字，优先于text字段起作用
     * @default false
     */
    dot?: boolean;
    /**
     * 内容文本的位置
     * @default "center"
     */
    textPosition?: DividerTextPosition;
    /**
     * 文本内容
     * @default ""
     */
    text?: string | number;
    /**
     * 文本大小
     * @default 14
     */
    textSize?: string | number;
    /**
     * 文本颜色
     * @default "#909399"
     */
    textColor?: string;
    /**
     * 线条颜色
     * @default "#dcdfe6"
     */
    lineColor?: string;
}
interface DividerEvents {
    /**
     * divider组件被点击时触发
     */
    ["onClick"]?: () => any;
}
interface _Divider extends BaseComponent<DividerProps & DividerEvents> {
}

declare global {
    namespace UniHelper {
        type UvDividerProps = DividerProps;
        type UvDividerEvents = DividerEvents;
        type UvDivider = _Divider;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvDivider: _Divider;
    }
}

interface DropDownProps {
    /**
     * 组件唯一标识，需要手动传
     * @default "UVDROPDOWN"
     */
    sign?: string | number;
    /**
     * 默认值，表示参数value属于这里面的值，就说明是未选中即是默认展示的值。eg：上面示例中的{label: '全部',value: 'all'} 即是默认值。后续处理逻辑也可以根据是否是其中值进行过滤。
     * @default [0,'0','all']
     */
    defaultValue?: (string | number)[];
    /**
     * 是否吸顶
     * @default true
     */
    isSticky?: boolean;
    /**
     * 每项字体大小
     * @default "30rpx"
     */
    textSize?: string;
    /**
     * 每项文本颜色
     * @default "#333"
     */
    textColor?: string;
    /**
     * 每项选中状态字体大小
     * @default "30rpx"
     */
    textActiveSize?: string;
    /**
     * 每项右侧图标
     * @default "{name: 'arrow-down', size: '30rpx', color: '#333'}"
     */
    extraIcon?: Record<string, any>;
    /**
     * 每项选中后右侧图标
     * @default "{name: 'arrow-up', size: '30rpx', color: '#3c9cff'}"
     */
    extraActiveIcon?: Record<string, any>;
}
interface DropdownEvents {
    /**
     * 点击每项菜单回调，返回参数 `{ name, active, type } = e，active - 是否打开该项`
     */
    ["onSelectMenu"]?: (...args: any[]) => any;
}
interface _Dropdown extends BaseComponent<DropDownProps & DropdownEvents> {
}
interface _DropdownInstance {
    /**
     * 初始化弹窗的位置，在滚动时可以调用此方法，及时更新位置
     */
    init: () => any;
}

declare global {
    namespace UniHelper {
        type UvDropDownProps = DropDownProps;
        type UvDropdownEvents = DropdownEvents;
        type UvDropdown = _Dropdown;
        type UvDropdownInstance = _DropdownInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvDropdown: _Dropdown;
    }
}

interface DropDownItemProps {
    /**
     * 字段标识
     * @default ""
     */
    name?: string | number;
    /**
     * 类型 1 没有筛选项，直接进行选中和不选中 2 有多个选项
     * @default ""
     */
    type?: string | number;
    /**
     * 筛选的文本
     * @default ""
     */
    label?: string;
    /**
     * 筛选的值
     * @default ""
     */
    value?: string | number;
    /**
     * 该项是否打开，可用于重置选项状态
     * @default false
     */
    isDrop?: boolean;
}
interface _DropdownItem extends BaseComponent<DropDownItemProps> {
}

declare global {
    namespace UniHelper {
        type UvDropdownItemProps = DropDownItemProps;
        type UvDropdownItem = _DropdownItem;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvDropdownItem: _DropdownItem;
    }
}

interface DropDownPopupProps {
    /**
     * 组件唯一标识，需要手动传，与DropDown组件必须保持一致
     * @default "UVDROPDOWN"
     */
    sign?: string | number;
    /**
     * 弹出层的层级
     * @default 999
     */
    zIndex?: string | number;
    /**
     * 遮罩层的透明度
     * @default 0.5
     */
    opacity?: string | number;
    /**
     * 是否允许点击遮罩层关闭弹窗
     * @default true
     */
    clickOverlayOnClose?: boolean;
    /**
     * 当前下拉筛选菜单对象
     * @default ""
     */
    currentDropItem?: Record<string, any>;
    /**
     * 指定从当前下拉筛选菜单对象元素中读取哪个属性作为文本展示
     * @default "label"
     */
    keyName?: string;
}
interface DropdownPopupEvents {
    /**
     * 点击筛选回调处理
     */
    ["onClickItem"]?: (...args: any[]) => any;
    /**
     * 打开关闭弹窗触发
     */
    ["onPopupChange"]?: (...args: any[]) => any;
}
interface DropdownPopupSlots {
    /**
     * 默认插槽，完全自定义内容，包括逻辑都需自己写
     */
    ["default"]?: () => any;
}
interface DropdownPopupInstance {
    /**
     * 打开弹窗
     */
    open: () => any;
    /**
     * 关闭弹窗
     * @returns
     */
    close: () => any;
}
interface _DropdownPopup extends BaseComponent<DropDownPopupProps & DropdownPopupEvents, DropdownPopupSlots> {
}

declare global {
    namespace UniHelper {
        type UvDropDownPopupProps = DropDownPopupProps;
        type UvDropDownPopupEvents = DropdownPopupEvents;
        type UvDropDownPopup = _DropdownPopup;
        type UvDropDownPopupInstance = DropdownPopupInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvDropDownPopup: _DropdownPopup;
    }
}

type EmptyMode = "car" | "page" | "search" | "address" | "wifi-off" | "order" | "coupon" | "favor" | "permission" | "history" | "news" | "message" | "list" | "data";
interface EmptyProps {
    /**
     * 内置图标名称，或图片路径，建议绝对路径，支持base64图片
     * @default ""
     */
    icon?: string;
    /**
     * 文字提示
     * @default ""
     */
    text?: string;
    /**
     * 文字颜色
     * @default "#c0c4cc"
     */
    textColor?: string;
    /**
     * 文字大小
     * @default 14
     */
    textSize?: string | number;
    /**
     * 图标的颜色
     * @default "#c0c4cc"
     */
    iconColor?: string;
    /**
     * 图标的大小
     * @default 90
     */
    iconSize?: string | number;
    /**
     * 内置的图标
     * @default "data"
     */
    mode?: EmptyMode;
    /**
     * 图标的宽度，单位px
     * @default 160
     */
    width?: string | number;
    /**
     * 图标的高度，单位px
     * @default 160
     */
    height?: string | number;
    /**
     * 是否显示组件
     * @default true
     */
    show?: boolean;
    /**
     * 组件到上一个元素的间距,单位px
     * @default 0
     */
    marginTop?: string | number;
}
interface EmptySlots {
    /**
     * 给组件底部传入slot内容
     */
    ["default"]?: () => any;
}
interface _Empty extends BaseComponent<EmptyProps, EmptySlots> {
}

declare global {
    namespace UniHelper {
        type UvEmptyMode = EmptyMode;
        type UvEmptyProps = EmptyProps;
        type UvEmpty = _Empty;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvEmpty: _Empty;
    }
}

type FormErrorType = "message" | "toast" | "border-bottom" | "none";
type FormLabelPosition = "left" | "top";
type FormLabelAlign = "left" | "center" | "right";
type RuleTrigger = "change" | "blur";
interface RuleItem {
    trigger?: RuleTrigger | RuleTrigger[];
    type?: "string" | "number" | "boolean" | "method" | "regexp" | "integer" | "float" | "array" | "object" | "enum" | "date" | "url" | "hex" | "email" | "any";
    required?: boolean;
    pattern?: RegExp;
    min?: number;
    max?: number;
    len?: number;
    enum?: (string | number)[];
    whitespace?: boolean;
    transform?: (value: any) => any;
    message?: string;
    validator?: (rule: any, value: any, callback: () => any) => boolean;
    asyncValidator?: (rule: any, value: any, callback: (error?: Error) => void) => void;
}
type FormRules = Record<string, RuleItem | RuleItem[]>;
interface FormProps {
    /**
     * 表单数据对象
     */
    model?: Record<string, any>;
    /**
     * 通过ref设置，如果rules中有自定义方法等，需要使用setRules方法设置规则
     */
    rules?: FormRules;
    /**
     * 错误的提示方式
     * @default "message"
     */
    errorType?: FormErrorType;
    /**
     * 是否显示表单域的下划线边框
     * @default true
     */
    borderBottom?: boolean;
    /**
     * 表单域提示文字的位置
     * @default "left"
     */
    labelPosition?: FormLabelPosition;
    /**
     * 提示文字的宽度，单位px。注意：在 uv-form 设置此值可能会变化抖动，可以将此值设置到 uv-form-item 节点上，效果会有所改善。
     * @default 45
     */
    labelWidth?: string | number;
    /**
     * label字体的对齐方式
     * @default "left"
     */
    labelAlign?: FormLabelAlign;
    /**
     * label的样式，对象形式
     * @default ""
     */
    labelStyle?: Record<string, any>;
}
interface _Form extends BaseComponent<FormProps> {
}
interface FormInstance {
    /**
     * 对整个表单进行校验的方法
     */
    validate: () => Promise<any>;
    /**
     * 如果rules中有自定义方法等，需要用此方法设置rules规则
     */
    setRules: (rules: Record<string, RuleItem | RuleItem[]>) => any;
    /**
     * 对部分表单字段进行校验，回调返回错误，需要自定义后续逻辑
     */
    validateField: () => any;
    /**
     * 对整个表单进行重置，将所有字段值重置为初始值并移除校验结果
     */
    resetFields: () => any;
    /**
     * 清空校验结果
     */
    clearValidate: () => any;
}

declare global {
    namespace UniHelper {
        type UvFormItemRule = RuleItem;
        type UvFormRules = FormRules;
        type UvFormProps = FormProps;
        type UvForm = _Form;
        type UvFormInstance = FormInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvForm: _Form;
    }
}

interface FormItemProps {
    /**
     * 左侧提示文字
     * @default ""
     */
    label?: string;
    /**
     * 表单域model对象的属性名，在使用 validate、resetFields 方法的情况下，该属性是必填的
     * @default ""
     */
    prop?: string;
    /**
     * 是否显示下边框，如不需要下边框，需同时将uv-form的同名参数设置为false
     * @default true
     */
    borderBottom?: boolean;
    /**
     * 提示文字的宽度，单位rpx，如设置，将覆盖uv-form的同名参数
     * @default ""
     */
    labelWidth?: string | number;
    /**
     * label的位置
     * @default ""
     */
    labelPosition?: LabelPosition;
    /**
     * 右侧自定义字体图标(限uv-ui内置图标)或图片地址
     * @default ""
     */
    rightIcon?: string;
    /**
     * 左侧自定义字体图标(限uv-ui内置图标)或图片地址
     * @default ""
     */
    leftIcon?: string;
    /**
     * 左侧自定义字体图标的样式
     * @default ""
     */
    leftIconStyle?: string | Record<string, any>;
    /**
     * 是否显示左边的 * 号，这里仅起展示作用，如需校验必填，请通过rules配置必填规则。注意：如果页面没有左右边距，星号可能被遮挡，请根据情况设置样式
     * @default false
     */
    required?: boolean;
    /**
     * 自定义样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface FormItemEvents {
    /**
     * 点击时触发
     */
    ["onClick"]?: () => any;
}
interface FormItemSlots {
    /**
     * form-item 的内容
     */
    ["default"]?: () => any;
    /**
     * 右侧自定义内容，可以在此传入一个按钮，用于获取验证码等场景
     */
    ["right"]?: () => any;
}
interface _FormItem extends BaseComponent<FormItemProps & FormItemEvents, FormItemSlots> {
}

declare global {
    namespace UniHelper {
        type UvFormItemProps = FormItemProps;
        type UvFormItemEvents = FormItemEvents;
        type UvFormItem = _FormItem;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvFormItem: _FormItem;
    }
}

interface GapProps {
    /**
     * 背景颜色
     * @default "transparent"
     */
    bgColor?: string;
    /**
     * 间隔槽高度，单位px(rpx)
     * @default 20
     */
    height?: string | number;
    /**
     * 与前一个元素的距离，单位px(rpx)
     * @default 0
     */
    marginTop?: string | number;
    /**
     * 与后一个元素的距离，单位px(rpx)
     * @default 0
     */
    marginBottom?: string | number;
}
interface _Gap extends BaseComponent<GapProps> {
}

declare global {
    namespace UniHelper {
        type UvGapProps = GapProps;
        type UvGap = _Gap;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvGap: _Gap;
    }
}

type GridAlign = "left" | "center" | "right";
interface GridProps {
    /**
     * 宫格的列数
     * @default 3
     */
    col?: string | number;
    /**
     * 是否显示宫格的边框
     * @default true
     */
    border?: boolean;
    /**
     * 宫格的对齐方式，用于控制只有一两个宫格时的对齐场景
     * @default "left"
     */
    align?: GridAlign;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface GridEvents {
    /**
     * 点击宫格触发
     * @param {string|number} name 宫格的name
     */
    ["onClick"]?: (name: string | number) => any;
}
interface _Grid extends BaseComponent<GridProps & GridEvents> {
}

declare global {
    namespace UniHelper {
        type UvGridProps = GridProps;
        type UvGridEvents = GridEvents;
        type UvGrid = _Grid;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvGrid: _Grid;
    }
}

interface GridItemProps {
    /**
     * 宫格的name
     * @default ""
     */
    name?: string | number;
    /**
     * 宫格的背景颜色
     * @default "transparent"
     */
    bgColor?: string;
}
interface GridItemEvents {
    /**
     * 点击宫格触发
     * @param {string|number} name 宫格的name
     */
    ["onClick"]?: (name: string | number) => any;
}
interface _GridItem extends BaseComponent<GridItemProps & GridItemEvents> {
}

declare global {
    namespace UniHelper {
        type UvGridItemProps = GridItemProps;
        type UvGridItemEvents = GridItemEvents;
        type UvGridItem = _GridItem;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvGridItem: _GridItem;
    }
}

type IconLabelPos = "right" | "bottom" | "top" | "left";
interface IconProps {
    /**
     * 图标名称，若带有/或遵循base64图片格式，会被认为是图片图标
     * @default ""
     */
    name?: string;
    /**
     * 图标颜色，接受主题色eg: color="primary"
     * @default "#606266"
     */
    color?: string;
    /**
     * 图标字体大小，单位px(rpx)
     * @default "16px"
     */
    size?: string | number;
    /**
     * 是否显示粗体
     * @default false
     */
    bold?: boolean;
    /**
     * 一个用于区分多个图标的值，点击图标时通过click事件传出
     * @default ""
     */
    index?: string | number;
    /**
     * 图标按下去的样式类，用法同uni的view组件的hover-class参数
     * @default ""
     */
    hoverClass?: string;
    /**
     * 自定义字体图标库时，需要写上此值
     * @default "uvicon"
     */
    customPrefix?: string;
    /**
     * 图标右侧 / 下方的label文字
     * @default ""
     */
    label?: string | number;
    /**
     * label相对于图标的位置
     * @default "right"
     */
    labelPos?: IconLabelPos;
    /**
     * label字体大小，单位px
     * @default "15px"
     */
    labelSize?: string | number;
    /**
     * label字体颜色
     * @default "#606266"
     */
    labelColor?: string;
    /**
     * label与图标的距离，单位px(rpx)
     * @default "3px"
     */
    space?: string | number;
    /**
     * 图片裁剪、缩放的模式，image组件原生属性
     * @default ""
     */
    imgMode?: ImageMode;
    /**
     * name为图片路径时图片的宽度，单位px(rpx)
     * @default ""
     */
    width?: string | number;
    /**
     * name为图片路径时图片的高度，单位px(rpx)
     * @default ""
     */
    height?: string | number;
    /**
     * 图标到顶部的距离，如果某些场景，如果图标没有垂直居中，可以调整此参数，单位px(rpx)
     * @default 0
     */
    top?: string | number;
    /**
     * 是否阻止事件传播
     * @default false
     */
    stop?: boolean;
}
interface IconEvents {
    /**
     * 点击图标时触发
     * @param {number} index 通过props传递的index值
     */
    ["onClick"]?: (index: number) => any;
}
interface _Icon extends BaseComponent<IconProps & IconEvents> {
}

declare global {
    namespace UniHelper {
        type UvIconProps = IconProps;
        type UvIconEvents = IconEvents;
        type UvIcon = _Icon;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvIcon: _Icon;
    }
}

interface ImageProps {
    /**
     * 图片地址，**强烈建议**使用绝对或者网络路径
     * @default ""
     */
    src?: string;
    /**
     * 裁剪模式
     * @default "aspectFill"
     */
    mode?: ImageMode;
    /**
     * 宽度，单位任意，如果为数值，默认单位px(rpx)
     * @default 300
     */
    width?: string | number;
    /**
     * 高度，单位任意，如果为数值，默认单位px(rpx)
     * @default 225
     */
    height?: string | number;
    /**
     * 图片形状
     * @default "square"
     */
    shape?: Shape;
    /**
     * 圆角，默认单位px
     * @default 0
     */
    radius?: string | number;
    /**
     * 是否懒加载，仅微信小程序、App、百度小程序、字节跳动小程序有效
     * @default false
     */
    lazyLoad?: boolean;
    /**
     * 是否observer懒加载，在该图片滑动到可视范围内的时候才会去请求加载图片。nvue页面不生效。
     * @default false
     */
    observeLazyLoad?: boolean;
    /**
     * 是否开启长按图片显示识别小程序码菜单，仅微信小程序有效
     * @default true
     */
    showMenuByLongpress?: boolean;
    /**
     * 加载中的图标，或者小图片
     * @default "photo"
     */
    loadingIcon?: string;
    /**
     * 加载失败的图标，或者小图片
     * @default "error-circle"
     */
    errorIcon?: string;
    /**
     * 是否显示加载中的图标或者自定义的slot
     * @default true
     */
    showLoading?: boolean;
    /**
     * 是否显示加载错误的图标或者自定义的slot
     * @default true
     */
    showError?: boolean;
    /**
     * 是否需要淡入效果
     * @default true
     */
    fade?: boolean;
    /**
     * 只支持网络资源，只对微信小程序有效
     * @default false
     */
    webp?: boolean;
    /**
     * 搭配fade参数的过渡时间，单位ms
     * @default 500
     */
    duration?: string | number;
    /**
     * 背景颜色，用于深色页面加载图片时，为了和背景色融合
     * @default "#f3f4f6"
     */
    bgColor?: string;
    /**
     * 是否属于cell节点下。nvue模式下的该组件在cell或uv-list等组件下使用，该值最好是设置成true，避免回收后不显示的BUG。
     * @default false
     */
    cellChild?: boolean;
    /**
     * 自定义样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface ImageEvents {
    /**
     * 点击图片时触发
     */
    ["onClick"]?: () => any;
    /**
     * 图片加载失败时触发
     * @param {any} err 错误信息
     */
    ["onError"]?: (err: any) => any;
    /**
     * 图片加载成功时触发
     */
    ["onLoad"]?: () => any;
}
interface ImageSlots {
    /**
     * 自定义加载中的提示内容
     */
    ["loading"]?: () => any;
    /**
     * 自定义失败的提示内容
     */
    ["error"]?: () => any;
}
interface _Image extends BaseComponent<ImageProps & ImageEvents, ImageSlots> {
}

declare global {
    namespace UniHelper {
        type UvImageProps = ImageProps;
        type UvImageEvents = ImageEvents;
        type UvImage = _Image;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvImage: _Image;
    }
}

interface IndexListProps {
    /**
     * 右边锚点状态非激活时的颜色
     * @default "#606266"
     */
    inactiveColor?: string;
    /**
     * 右边锚点状态激活时的颜色
     * @default "#5677fc"
     */
    activeColor?: string;
    /**
     * 索引字符列表，数组
     * @default "A-Z"
     */
    indexList?: (string | number)[];
    /**
     * 是否开启锚点自动吸顶
     * @default true
     */
    sticky?: boolean;
    /**
     * 自定义导航栏的高度，单位默认px
     * @default 0
     */
    customNavHeight?: string | number;
}
interface IndexListEvents {
    /**
     * 选中右边索引字符时触发
     * @param {string|number} index 索引字符
     */
    ["onSelect"]?: (index: string | number) => any;
}
interface _IndexList extends BaseComponent<IndexListProps & IndexListEvents> {
}

declare global {
    namespace UniHelper {
        type UvIndexListProps = IndexListProps;
        type UvIndexListEvents = IndexListEvents;
        type UvIndexList = _IndexList;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvIndexList: _IndexList;
    }
}

interface IndexListAnchorProps {
    /**
     * 列表锚点文本内容
     * @default ""
     */
    text?: string | number;
    /**
     * 列表锚点文字颜色
     * @default "#606266"
     */
    color?: string;
    /**
     * 列表锚点文字大小，单位默认px
     * @default 14
     */
    size?: string | number;
    /**
     * 列表锚点背景颜色
     * @default "#dedede"
     */
    bgColor?: string;
    /**
     * 列表锚点高度，单位默认px
     * @default 32
     */
    height?: string | number;
}
interface _IndexListAnchor extends BaseComponent<IndexListAnchorProps> {
}

declare global {
    namespace UniHelper {
        type UvIndexListAnchorProps = IndexListAnchorProps;
        type UvIndexListAnchor = _IndexListAnchor;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvIndexListAnchor: _IndexListAnchor;
    }
}

type IndexListItemProps = Record<string, any>;
interface IndexListItemSlots {
    /**
     * 自定义列表内容
     */
    ["default"]?: () => any;
}
interface _IndexListItem extends BaseComponent<IndexListItemProps, IndexListItemSlots> {
}

declare global {
    namespace UniHelper {
        type UvIndexListItemProps = IndexListItemProps;
        type UvIndexListItem = _IndexListItem;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvIndexListItem: _IndexListItem;
    }
}

type InputType = "text" | "number" | "idcard" | "digit" | "password";
type InputConfirmType = "done" | "send" | "search" | "next" | "go" | "done";
type InputInputAlign = "left" | "center" | "right";
type InputBorder = "surround" | "bottom" | "none";
interface InputProps {
    /**
     * 输入的值
     * @default ""
     */
    value?: string | number;
    /**
     * 输入框类型
     * @default "text"
     */
    type?: InputType;
    /**
     * 是否禁用输入框
     * @default false
     */
    disabled?: boolean;
    /**
     * 禁用状态时的背景色
     * @default "#f5f7fa"
     */
    disabledColor?: string;
    /**
     * 是否显示清除控件
     * @default false
     */
    clearable?: boolean;
    /**
     * 是否密码类型
     * @default false
     */
    password?: boolean;
    /**
     * 最大输入长度，设置为 -1 的时候不限制最大长度。（注意：maxlength都是小写）
     * @default -1
     */
    maxlength?: string | number;
    /**
     * 输入框为空时的占位符
     * @default ""
     */
    placeholder?: string;
    /**
     * 指定placeholder的样式类，注意页面或组件的style中写了scoped时，需要在类名前写/deep/
     * @default "input-placeholder"
     */
    placeholderClass?: string;
    /**
     * 指定placeholder的样式，字符串/对象形式，如"color: red;"
     * @default "color: #c0c4cc"
     */
    placeholderStyle?: string | Record<string, any>;
    /**
     * 是否显示输入字数统计，只在 type ="text"或type ="textarea"时有效
     * @default "false"
     */
    showWordLimit?: boolean;
    /**
     * 设置右下角按钮的文字
     * @default "done"
     */
    confirmType?: InputConfirmType;
    /**
     * 点击键盘右下角按钮时是否保持键盘不收起，H5无效
     * @default false
     */
    confirmHold?: boolean;
    /**
     * focus时，点击页面的时候不收起键盘，微信小程序有效
     * @default false
     */
    holdKeyboard?: boolean;
    /**
     * 自动获取焦点，在 H5 平台能否聚焦以及软键盘是否跟随弹出，取决于当前浏览器本身的实现。nvue 页面不支持，需使用组件的 focus()、blur() 方法控制焦点
     * @default false
     */
    focus?: boolean;
    /**
     * 键盘收起时，是否自动失去焦点，目前仅App3.0.0+有效
     * @default false
     */
    autoBlur?: boolean;
    /**
     * 是否忽略组件内对文本合成系统事件的处理。为 false 时将触发 compositionstart、compositionend、compositionupdate 事件，且在文本合成期间会触发 input 事件
     * @default true
     */
    ignoreCompositionEvent?: boolean;
    /**
     * 是否去掉 iOS 下的默认内边距，仅微信小程序，且type=textarea时有效
     * @default false
     */
    disableDefaultPadding?: boolean;
    /**
     * 指定focus时光标的位置
     * @default -1
     */
    cursor?: string | number;
    /**
     * 输入框聚焦时底部与键盘的距离
     * @default 30
     */
    cursorSpacing?: string | number;
    /**
     * 光标起始位置，自动聚集时有效，需与selection-end搭配使用
     * @default -1
     */
    selectionStart?: string | number;
    /**
     * 光标结束位置，自动聚集时有效，需与selection-start搭配使用
     * @default -1
     */
    selectionEnd?: string | number;
    /**
     * 键盘弹起时，是否自动上推页面
     * @default true
     */
    adjustPosition?: boolean;
    /**
     * 输入框内容对齐方式
     * @default "left"
     */
    inputAlign?: InputInputAlign;
    /**
     * 输入框字体的大小
     * @default "15px"
     */
    fontSize?: string | number;
    /**
     * 输入框字体颜色
     * @default "#303133"
     */
    color?: string;
    /**
     * 输入框前置图标
     * @default ""
     */
    prefixIcon?: string;
    /**
     * 前置图标样式，对象或字符串
     * @default ""
     */
    prefixIconStyle?: string | Record<string, any>;
    /**
     * 输入框后置图标
     * @default ""
     */
    suffixIcon?: string;
    /**
     * 后置图标样式，对象或字符串
     * @default ""
     */
    suffixIconStyle?: string | Record<string, any>;
    /**
     * 边框类型
     * @default "surround"
     */
    border?: InputBorder;
    /**
     * 是否只读，与disabled不同之处在于disabled会置灰组件，而readonly则不会
     * @default false
     */
    readonly?: boolean;
    /**
     * 输入框形状
     * @default "square"
     */
    shape?: Shape;
    /**
     * 输入过滤或格式化函数(如需兼容微信小程序，则只能通过setFormatter方法)
     * @default null
     */
    formatter?: (...args: any[]) => any;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface InputEvents {
    /**
     * 输入框失去焦点时触发
     * @param {any} value 内容值
     */
    ["onBlur"]?: (value: any) => any;
    /**
     * 输入框聚焦时触发
     */
    ["onFocus"]?: () => any;
    /**
     * 点击完成按钮时触发
     * @param {any} value 内容值
     */
    ["onConfirm"]?: (value: any) => any;
    /**
     * 键盘高度发生变化的时候触发此事件
     */
    ["onKeyboardheightchange"]?: () => any;
    /**
     * 内容发生变化触发此事件
     * @param {any} value 内容值
     */
    ["onInput"]?: (value: any) => any;
    /**
     * 点击清空内容
     */
    ["onClear"]?: () => any;
}
interface InputSlots {
    /**
     * 输入框前置内容
     */
    ["prefix"]?: () => any;
    /**
     * 输入框后置内容
     */
    ["suffix"]?: () => any;
}
interface _Input extends BaseComponent<InputProps & InputEvents, InputSlots> {
}
interface InputInstance {
    /**
     * 为兼容微信小程序而暴露的内部方法
     */
    setFormatter: (formatter: InputProps["formatter"]) => any;
}

declare global {
    namespace UniHelper {
        type UvInputProps = InputProps;
        type UvInputEvents = InputEvents;
        type UvInput = _Input;
        type UvInputInstance = InputInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvInput: _Input;
    }
}

type KeyboardMode = "car" | "number" | "card";
interface KeyboardProps {
    /**
     * 键盘的类型
     * @default "car"
     */
    mode?: KeyboardMode;
    /**
     * 是否显示"."按键，只在mode="number"时有效
     * @default "false"
     */
    dotDisabled?: boolean;
    /**
     * 是否显示键盘顶部工具条
     * @default true
     */
    tooltip?: boolean;
    /**
     * 是否显示工具条中间的提示
     * @default true
     */
    showTips?: boolean;
    /**
     * 工具条中间的提示文字
     * @default ""
     */
    tips?: string;
    /**
     * 是否显示工具条左边的"取消"按钮
     * @default true
     */
    showCancel?: boolean;
    /**
     * 是否显示工具条右边的"完成"按钮
     * @default true
     */
    showConfirm?: boolean;
    /**
     * 是否打乱键盘按键的顺序
     * @default false
     */
    random?: boolean;
    /**
     * 是否开启底部安全区适配
     * @default false
     */
    safeAreaInsetBottom?: boolean;
    /**
     * 是否允许点击遮罩收起键盘
     * @default true
     */
    closeOnClickOverlay?: boolean;
    /**
     * 是否允许点击确认按钮收起键盘
     * @default true
     */
    closeOnClickConfirm?: boolean;
    /**
     * 是否显示遮罩
     * @default true
     */
    overlay?: boolean;
    /**
     * 弹出键盘的z-index值
     * @default 1075
     */
    zIndex?: string | number;
    /**
     * 确认按钮的文字
     * @default "确认"
     */
    confirmText?: string;
    /**
     * 取消按钮的文字
     * @default "取消"
     */
    cancelText?: string;
    /**
     * mode = "car"下，输入文字后，是否自动切换为字母模式
     * @default false
     */
    autoChange?: boolean;
    /**
     * mode = "car"下，被禁用的键，如：['I','O']
     * @default ""
     */
    disKeys?: string[];
    /**
     * mode = "car"下，是否启用自定义中英文切换内容模式，为了兼容支付宝等小程序不兼容嵌套插槽，导致同时显示自定义内容和原始内容
     * @default ""
     */
    customabc?: string[];
    /**
     * 自定义外部样式
     * @default {}
     */
    customStyle?: string | Record<string, any>;
}
interface KeyboardEvents {
    /**
     * 按键被点击(不包含退格键被点击)
     */
    ["onChange"]?: (...args: any[]) => any;
    /**
     * 键盘关闭
     */
    ["onClose"]?: () => any;
    /**
     * 键盘顶部工具条右边的"完成"按钮被点击
     */
    ["onConfirm"]?: () => any;
    /**
     * 键盘顶部工具条左边的"取消"按钮被点击
     */
    ["onCancel"]?: () => any;
    /**
     * 键盘退格键被点击
     */
    ["onBackspace"]?: () => any;
    /**
     * mode = "car"下，调用此方法可以进行切换中英文
     * @description 返回true - 英文模式；false - 中文模式
     */
    ["changeCarInputMode"]?: () => boolean;
}
interface _Keyboard extends BaseComponent<KeyboardProps & KeyboardEvents> {
}
interface KeyboardInstance {
    /**
     * 弹出键盘组件
     */
    open: () => any;
    /**
     * 关闭键盘组件
     */
    close: () => any;
    /**
     * mode = "car"下， 调用此方法可以切换中英文模式
     */
    changeCarMode: () => any;
}

declare global {
    namespace UniHelper {
        type UvKeyboardProps = KeyboardProps;
        type UvKeyboardEvents = KeyboardEvents;
        type UvKeyboard = _Keyboard;
        type UvKeyboardInstance = KeyboardInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvKeyboard: _Keyboard;
    }
}

type LineDirection = "row" | "col";
interface LineProps {
    /**
     * 线条的颜色
     * @default "#d6d7d9"
     */
    color?: string;
    /**
     * 长度，竖向时表现为高度，横向时表现为长度。direction="col"时必须设置length值。
     * @default "100%"
     */
    length?: string | number;
    /**
     * 线条的方向
     * @default "row"
     */
    direction?: LineDirection;
    /**
     * 是否显示细边框
     * @default true
     */
    hairline?: boolean;
    /**
     * 线条与上下左右元素的间距，字符串形式，如"30rpx"、"20rpx 30rpx"，默认单位px
     * @default 0
     */
    margin?: string | number;
    /**
     * 是否虚线
     * @default false
     */
    dashed?: boolean;
    /**
     * 自定义样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface _Line extends BaseComponent<LineProps> {
}

declare global {
    namespace UniHelper {
        type UvLineProps = LineProps;
        type UvLine = _Line;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvLine: _Line;
    }
}

interface LineProgressProps {
    /**
     * 进度条激活部分的颜色
     * @default "#19be6b"
     */
    activeColor?: string;
    /**
     * 进度条的底色，默认为灰色
     * @default "#ececec"
     */
    inactiveColor?: string;
    /**
     * 进度百分比，数值
     * @default 0
     */
    percentage?: string | number;
    /**
     * 是否在进度条内部显示百分比的值
     * @default true
     */
    showText?: boolean;
    /**
     * 进度条的高度，默认单位px。eg：height="30rpx"
     * @default 12
     */
    height?: string | number;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface LineProgressSlots {
    /**
     * 传入自定义的显示内容，将会覆盖默认显示的百分比值
     */
    ["default"]?: () => any;
}
interface _LineProgress extends BaseComponent<LineProgressProps, LineProgressSlots> {
}

declare global {
    namespace UniHelper {
        type UvLineProgressProps = LineProgressProps;
        type UvLineProgress = _LineProgress;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvLineProgress: _LineProgress;
    }
}

interface LinkProps {
    /**
     * 文字颜色
     * @default ""
     */
    color?: string;
    /**
     * 字体大小，默认单位px(rpx)
     * @default 15
     */
    fontSize?: string | number;
    /**
     * 是否显示下划线
     * @default false
     */
    underLine?: boolean;
    /**
     * 跳转的链接，要带上http(s)
     * @default ""
     */
    href?: string;
    /**
     * 各个小程序平台把链接复制到粘贴板后的提示语
     * @default "链接已复制，请在浏览器打开"
     */
    mpTips?: string;
    /**
     * 划线颜色，默认同color参数颜色
     * @default ""
     */
    lineColor?: string;
    /**
     * 超链接的问题，不使用slot形式传入，是因为nvue下无法修改颜色
     * @default ""
     */
    text?: string;
}
interface LinkEvents {
    /**
     * 点击链接时触发
     */
    ["onClick"]?: () => any;
}
interface _Link extends BaseComponent<LinkProps & LinkEvents> {
}

declare global {
    namespace UniHelper {
        type UvLinkProps = LinkProps;
        type UvLinkEvents = LinkEvents;
        type UvLink = _Link;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvLink: _Link;
    }
}

interface ListProps {
    /**
     * 是否显示边框
     * @default false
     */
    border?: boolean;
    /**
     * 边框颜色
     * @default "#dadbde"
     */
    borderColor?: string;
    /**
     * 控制子组件排版方向，使用默认插槽自定义内容时不生效
     * @default "row"
     */
    direction?: Direction;
    /**
     * 控制子组件内边距，使用默认插槽自定义内容时不生效
     * @default "20rpx 30rpx"
     */
    padding?: string;
    /**
     * 自定义外部样式
     */
    customStyle?: string | Record<string, any>;
}
interface _List extends BaseComponent<ListProps> {
}

declare global {
    namespace UniHelper {
        type UvListProps = ListProps;
        type UvList = _List;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvList: _List;
    }
}

type ListItemEllipsis = 0 | 1 | 2;
type ListItemSize = "lg" | "medium" | "sm";
interface ListItemProps {
    /**
     * 是否显示边框
     * @default false
     */
    border?: boolean;
    /**
     * 标题
     * @default ""
     */
    title?: string;
    /**
     * 描述
     * @default ""
     */
    note?: string;
    /**
     * title 是否溢出隐藏
     * @default 0
     */
    ellipsis?: ListItemEllipsis;
    /**
     * 左侧缩略图，若thumb有值，则不会显示扩展图标
     * @default ""
     */
    thumb?: string;
    /**
     * 略缩图尺寸
     * @default "medium"
     */
    thumbSize?: ListItemSize;
    /**
     * 是否显示数字角标
     * @default false
     */
    showBadge?: boolean;
    /**
     * 数字角标参数
     * @default ""
     */
    badge?: BadgeProps;
    /**
     * 右侧文字内容
     * @default ""
     */
    rightText?: string;
    /**
     * 是否禁用
     * @default false
     */
    disabled?: boolean;
    /**
     * 是否显示箭头图标
     * @default false
     */
    showArrow?: boolean;
    /**
     * 新页面跳转方式
     * @default "navigateTo"
     */
    link?: LinkType;
    /**
     * 新页面跳转地址，如填写此属性，click 会返回页面是否跳转成功
     * @default ""
     */
    to?: string;
    /**
     * 是否开启点击反馈
     * @default false
     */
    clickable?: boolean;
    /**
     * 是否显示Switch
     * @default false
     */
    showSwitch?: boolean;
    /**
     * Switch是否被选中
     * @default false
     */
    switchChecked?: boolean;
    /**
     * 左侧是否显示扩展图标
     * @default false
     */
    showExtraIcon?: boolean;
    /**
     * 扩展图标参数
     * @default ""
     */
    extraIcon?: IconProps;
    /**
     * 排版方向
     * @default "row"
     */
    direction?: Direction;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface ListItemEvents {
    /**
     * 点击 uv-list-item 触发事件，需开启点击反馈：:clickable="true"
     */
    ["onClick"]?: () => any;
    /**
     * 点击切换 Switch 时触发，需显示 switch
     */
    ["onSwitchChange"]?: (...args: any[]) => any;
    /**
     * nvue模式，滚动时触发
     */
    ["onScroll"]?: (...args: any[]) => any;
    /**
     * nvue模式，滚动到底部触发
     */
    ["onScrolltolower"]?: () => any;
}
interface ListItemSlots {
    /**
     * 默认插槽，完全自定义内容时推荐该方式
     */
    ["default"]?: () => any;
    /**
     * 左/上内容插槽，可完全自定义默认显示
     */
    ["header"]?: () => any;
    /**
     * 中间内容插槽，可完全自定义中间内容
     */
    ["body"]?: () => any;
    /**
     * 右/下内容插槽，可完全自定义右侧内容
     */
    ["footer"]?: () => any;
}
interface _ListItem extends BaseComponent<ListItemProps & ListItemEvents, ListItemSlots> {
}

declare global {
    namespace UniHelper {
        type UvListItemProps = ListItemProps;
        type UvListItemEvents = ListItemEvents;
        type UvListItem = _ListItem;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvListItem: _ListItem;
    }
}

interface LoadingIconProps {
    /**
     * 是否显示动画
     * @default true
     */
    show?: boolean;
    /**
     * 图标颜色
     * @default "#909193"
     */
    color?: string;
    /**
     * 提示文本颜色
     * @default "#909193"
     */
    textColor?: string;
    /**
     * 图标和文字是否垂直排列
     * @default false
     */
    vertical?: boolean;
    /**
     * 模式选择
     * @default "circle"
     */
    mode?: LoadingMode;
    /**
     * 加载图标的大小，默认单位px
     * @default 24
     */
    size?: string | number;
    /**
     * 加载文字的大小，默认单位px
     * @default 15
     */
    textSize?: string | number;
    /**
     * 文字内容
     * @default ""
     */
    text?: string;
    /**
     * 文字样式
     * @default ""
     */
    textStyle?: Record<string, any>;
    /**
     * 指定animation-timing-function的css属性，但只支持mode为circle或semicircle才有效
     * @link https://www.runoob.com/cssref/css3-pr-animation-timing-function.html
     */
    timingFunction?: string;
    /**
     * 动画执行周期时间，单位ms
     * @default 1200
     */
    duration?: string | number;
    /**
     * 图标的暗边颜色, mode为circle 模式有效
     * @default "transparent"
     */
    inactiveColor?: string;
}
interface _LoadingIcon extends BaseComponent<LoadingIconProps> {
}

declare global {
    namespace UniHelper {
        type UvLoadingIconProps = LoadingIconProps;
        type UvLoadingIcon = _LoadingIcon;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvLoadingIcon: _LoadingIcon;
    }
}

interface LoadingPageProps {
    /**
     * 提示内容
     * @default ""
     */
    loadingText?: string | number;
    /**
     * 文字上方用于替换loading动画的图片
     * @default ""
     */
    image?: string;
    /**
     * 加载动画的模式
     * @default "circle"
     */
    loadingMode?: LoadingMode;
    /**
     * 是否加载中
     * @default false
     */
    loading?: boolean;
    /**
     * 背景颜色
     * @default "#ffffff"
     */
    bgColor?: string;
    /**
     * 文字颜色
     * @default "#C8C8C8"
     */
    color?: string;
    /**
     * 文字大小
     * @default 19
     */
    fontSize?: string | number;
    /**
     * 图标大小
     * @default 28
     */
    iconSize?: string | number;
    /**
     * 加载中图标的颜色
     * @default "#C8C8C8"
     */
    loadingColor?: string;
}
interface _LoadingPage extends BaseComponent<LoadingPageProps> {
}

declare global {
    namespace UniHelper {
        type UvLoadingPageProps = LoadingPageProps;
        type UvLoadingPage = _LoadingPage;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvLoadingPage: _LoadingPage;
    }
}

type LoadMoreStatus = "loadmore" | "loading" | "nomore";
interface LoadMoreProps {
    /**
     * 组件状态
     * @default "loadmore"
     */
    status?: LoadMoreStatus;
    /**
     * 组件背景颜色，在页面是非白色时会用到
     * @default "transparent"
     */
    bgColor?: string;
    /**
     * 加载中时是否显示图标
     * @default true
     */
    icon?: boolean;
    /**
     * 字体大小，单位rpx或px
     * @default 14
     */
    fontSize?: string | number;
    /**
     * 图标大小，单位rpx或px
     * @default 17
     */
    iconSize?: string | number;
    /**
     * 字体颜色
     * @default "#606266"
     */
    color?: string;
    /**
     * 加载中状态的图标
     * @default "spinner"
     */
    loadingIcon?: LoadingMode;
    /**
     * 加载前的提示语
     * @default "加载更多"
     */
    loadmoreText?: string;
    /**
     * 加载中提示语
     * @default "正在加载..."
     */
    loadingText?: string;
    /**
     * 没有更多的提示语
     * @default "没有更多了"
     */
    nomoreText?: string;
    /**
     * status为nomore时，内容显示为一个"●"
     * @default false
     */
    isDot?: boolean;
    /**
     * 加载中的动画图标的颜色
     * @default "#b7b7b7"
     */
    iconColor?: string;
    /**
     * 线条颜色
     * @default "#E6E8EB"
     */
    lineColor?: string;
    /**
     * 是否虚线
     * @default false
     */
    dashed?: boolean;
    /**
     * 与前一个元素的距离，单位rpx或px
     * @default 10
     */
    marginTop?: string | number;
    /**
     * 与后一个元素的距离，单位rpx或px
     * @default 10
     */
    marginBottom?: string | number;
    /**
     * 高度
     * @default "auto"
     */
    height?: string | number;
    /**
     * 是否显示左边分割线
     * @default false
     */
    line?: boolean;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface LoadMoreEvents {
    /**
     * status为loadmore时，点击组件触发
     */
    ["onLoadmore"]?: () => any;
}
interface _LoadMore extends BaseComponent<LoadMoreProps & LoadMoreEvents> {
}

declare global {
    namespace UniHelper {
        type UvLoadMoreProps = LoadMoreProps;
        type UvLoadMoreEvents = LoadMoreEvents;
        type UvLoadMore = _LoadMore;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvLoadMore: _LoadMore;
    }
}

type ModalAlign = "left" | "center" | "right";
interface ModalProps {
    /**
     * 标题内容
     * @default ""
     */
    title?: string;
    /**
     * 模态框内容，如传入slot内容，则此参数无效
     * @default ""
     */
    content?: string;
    /**
     * 确认按钮的文字
     * @default "确认"
     */
    confirmText?: string;
    /**
     * 取消按钮的文字
     * @default "取消"
     */
    cancelText?: string;
    /**
     * 是否显示确认按钮
     * @default true
     */
    showConfirmButton?: boolean;
    /**
     * 是否显示取消按钮
     * @default false
     */
    showCancelButton?: boolean;
    /**
     * 确认按钮的颜色
     * @default "#2979ff"
     */
    confirmColor?: string;
    /**
     * 取消按钮的颜色
     * @default "#606266"
     */
    cancelColor?: string;
    /**
     * 对调确认和取消的位置
     * @default false
     */
    buttonReverse?: boolean;
    /**
     * 是否开启缩放模式
     * @default true
     */
    zoom?: boolean;
    /**
     * 是否异步关闭，只对确定按钮有效
     * @default false
     */
    asyncClose?: boolean;
    /**
     * 是否允许点击遮罩关闭该组件
     * @default true
     */
    closeOnClickOverlay?: boolean;
    /**
     * 往上偏移的值，给一个负的margin-top，往上偏移，避免和键盘重合的情况，单位任意，数值则默认为rpx单位
     * @default 0
     */
    negativeTop?: string | number;
    /**
     * modal宽度，不支持百分比，可以数值，单位px(rpx)
     * @default "650rpx"
     */
    width?: string | number;
    /**
     * 文本对齐方式
     * @version `1.0.7`
     * @default "left"
     */
    align?: ModalAlign;
    /**
     * 文本扩展样式
     * @version `1.0.7`
     * @default ""
     */
    textStyle?: Record<string, any>;
}
interface ModalEvents {
    /**
     * 点击确认按钮时触发
     */
    ["onConfirm"]?: () => any;
    /**
     * 点击取消按钮时触发
     */
    ["onCancel"]?: () => any;
    /**
     * 关闭模态框组件时触发
     */
    ["onClose"]?: () => any;
}
interface ModalSlots {
    /**
     * 传入自定义内容，一般为富文本
     */
    ["default"]?: () => any;
    /**
     * 传入自定义按钮，用于在微信小程序弹窗通过按钮授权的场景
     */
    ["confirmButton"]?: () => any;
}
interface _Modal extends BaseComponent<ModalProps & ModalEvents, ModalSlots> {
}
interface ModalInstance {
    /**
     * 弹出模态框组件
     */
    open: () => any;
    /**
     * 关闭模态框组件
     */
    close: () => any;
    /**
     * :asyncClose="true"异步关闭场景，验证通过则关闭，验证不通过不关闭且按钮恢复加载前的状态等场景，可以调用此方法关闭加载状态
     */
    closeLoading: () => any;
}

declare global {
    namespace UniHelper {
        type UvModalProps = ModalProps;
        type UvModalEvents = ModalEvents;
        type UvModal = _Modal;
        type UvModalInstance = ModalInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvModal: _Modal;
    }
}

interface NavbarProps {
    /**
     * 导航栏标题，如设置为空字符，将会隐藏标题占位区域
     * @default ""
     */
    title?: string;
    /**
     * 是否开启顶部安全区适配
     * @default true
     */
    safeAreaInsetTop?: boolean;
    /**
     * 固定在顶部时，是否生成一个等高元素，以防止塌陷
     * @default false
     */
    placeholder?: boolean;
    /**
     * 导航栏是否固定在顶部
     * @default true
     */
    fixed?: boolean;
    /**
     * 导航栏底部是否显示下边框
     * @default false
     */
    border?: boolean;
    /**
     * 左边返回图标的名称，只能为uv-ui自带的图标
     * @default "arrow-left"
     */
    leftIcon?: string;
    /**
     * 左边的提示文字
     * @default ""
     */
    leftText?: string;
    /**
     * 右边的提示文字
     * @default ""
     */
    rightText?: string;
    /**
     * 右边返回图标的名称，只能为uv-ui自带的图标
     * @default ""
     */
    rightIcon?: string;
    /**
     * 导航栏背景设置，支持渐变色，支持图片背景
     * @default "#ffffff"
     */
    bgColor?: string;
    /**
     * bgColor为图片时，可以通过此属性设置裁剪模式
     * @default "aspectFill"
     */
    imgMode?: ImageMode;
    /**
     * 导航栏标题的最大宽度，内容超出会以省略号隐藏，单位px(rpx)
     * @default "400px"
     */
    titleWidth?: string | number;
    /**
     * 导航栏高度(不包括状态栏高度在内，内部自动加上)，单位px(rpx)
     * @default "44px"
     */
    height?: string | number;
    /**
     * 左侧返回图标的大小
     * @default "20px"
     */
    leftIconSize?: string | number;
    /**
     * 左侧返回图标的颜色
     * @default "#303133"
     */
    leftIconColor?: string;
    /**
     * 点击左侧区域(返回图标)，是否自动返回上一页
     * @default false
     */
    autoBack?: boolean;
    /**
     * 标题的样式，对象或字符串形式
     * @default ""
     */
    titleStyle?: string | Record<string, any>;
}
interface NavbarEvents {
    /**
     * 点击左侧区域
     */
    ["onLeftClick"]?: () => any;
    /**
     * 点击右侧区域
     */
    ["onRightClick"]?: () => any;
}
interface NavbarSlots {
    /**
     * 自定义左侧部分内容
     */
    ["left"]?: () => any;
    /**
     * 自定义右侧部分内容
     */
    ["right"]?: () => any;
    /**
     * 自定义中部内容
     */
    ["center"]?: () => any;
}
interface _Navbar extends BaseComponent<NavbarProps & NavbarEvents, NavbarSlots> {
}

declare global {
    namespace UniHelper {
        type UvNavbarProps = NavbarProps;
        type UvNavbarEvents = NavbarEvents;
        type UvNavbar = _Navbar;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvNavbar: _Navbar;
    }
}

interface NoNetworkProps {
    /**
     * 没有网络时的提示语
     * @default "哎呀，网络信号丢失"
     */
    tips?: string;
    /**
     * 无网络的图片提示，可用的src地址或base64图片
     * @default ""
     */
    image?: string;
}
interface NoNetworkEvents {
    /**
     * 用户点击页面的"重试"按钮时触发
     */
    ["onRetry"]?: () => any;
    /**
     * "重试"后，有网络触发
     */
    ["onConnected"]?: () => any;
    /**
     * "重试"后，无网络触发
     */
    ["onDisconnected"]?: () => any;
}
interface _NoNetwork extends BaseComponent<NoNetworkProps & NoNetworkEvents> {
}

declare global {
    namespace UniHelper {
        type UvNoNetworkProps = NoNetworkProps;
        type UvNoNetworkEvents = NoNetworkEvents;
        type UvNoNetwork = _NoNetwork;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvNoNetwork: _NoNetwork;
    }
}

type NoticeBarMode = "link" | "closable";
interface NoticeBarProps {
    /**
     * 显示的内容，direction为column时要求为数组， 为row时要求为字符串
     * @default ""
     */
    text?: string | string[];
    /**
     * 通告滚动模式
     */
    direction?: Direction;
    /**
     * direction = "row"时，是否使用步进形式滚动
     * @default false
     */
    step?: boolean;
    /**
     * 左侧的音量图标，不显示:icon="false"或传空
     * @default "volume"
     */
    icon?: string;
    /**
     * 通告模式，link-显示右箭头，closable-显示右侧关闭图标
     * @default ""
     */
    mode?: NoticeBarMode;
    /**
     * 文字颜色
     * @default "#f9ae3d"
     */
    color?: string;
    /**
     * 背景颜色
     * @default "#fdf6ec"
     */
    bgColor?: string;
    /**
     * 水平滚动时的滚动速度，即每秒滚动多少px(rpx)，这有利于控制文字无论多少时，都能有一个恒定的速度
     * @default 80
     */
    speed?: string | number;
    /**
     * 字体大小
     * @default 14
     */
    fontSize?: string | number;
    /**
     * 滚动一个周期的时间长，单位ms
     * @default 2000
     */
    duration?: string | number;
    /**
     * 跳转的页面路径
     * @default ""
     */
    url?: string;
    /**
     * 页面跳转的类型
     * @default "navigateTo"
     */
    linkType?: LinkType;
    /**
     * 是否禁止用手滑动切换，仅direction="column"生效
     * @default true
     */
    disableTouch?: boolean;
    /**
     * 是否禁止自动滚动，仅direction="column"生效
     * @version `1.0.4`
     * @default false
     */
    disableScroll?: boolean;
    /**
     * 定义需要用到的外部样式
     */
    customStyle?: string | Record<string, any>;
}
interface NoticeBarEvents {
    /**
     * 点击通告文字触发
     * @param {number} index 点击的text的索引
     */
    ["onClick"]?: (index: number) => any;
    /**
     * 点击右侧关闭图标触发
     */
    ["onClose"]?: () => any;
    /**
     * direction 为 column 滚动时触发
     * @param {number} index 索引
     */
    ["onChange"]?: (index: number) => any;
}
interface _NoticeBar extends BaseComponent<NoticeBarProps & NoticeBarEvents> {
}

declare global {
    namespace UniHelper {
        type UvNoticeBarProps = NoticeBarProps;
        type UvNoticeBarEvents = NoticeBarEvents;
        type UvNoticeBar = _NoticeBar;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvNoticeBar: _NoticeBar;
    }
}

interface NotifyShowParams {
    /**
     * 到顶部的距离
     * @default 0
     */
    top?: string | number;
    /**
     * 主题
     */
    type?: ColorType;
    /**
     * 字体颜色
     * @default "#ffffff"
     */
    color?: string;
    /**
     * 背景颜色
     * @default ""
     */
    bgColor?: string;
    /**
     * 展示的文字内容
     * @default ""
     */
    message?: string;
    /**
     * 展示时长，为0时不消失，单位ms
     * @default 3000
     */
    duration?: string | number;
    /**
     * 字体大小，单位px（rpx）
     * @default 15
     */
    fontSize?: string | number;
    /**
     * 是否留出顶部安全距离（状态栏高度）
     * @default false
     */
    safeAreaInsetTop?: boolean;
}
interface NotifyProps {
    /**
     * 到顶部的距离
     */
    top?: string | number;
    /**
     * 主题
     * @default "primary"
     */
    type?: ColorType;
    /**
     * 字体颜色
     * @default "#ffffff"
     */
    color?: string;
    /**
     * 背景颜色
     * @default ""
     */
    bgColor?: string;
    /**
     * 展示的文字内容
     * @default ""
     */
    message?: string;
    /**
     * 展示时长，为0时不消失，单位ms
     * @default 3000
     */
    duration?: string | number;
    /**
     * 字体大小，单位px（rpx）
     * @default 15
     */
    fontSize?: string | number;
    /**
     * 是否留出顶部安全距离（状态栏高度）
     * @default false
     */
    safeAreaInsetTop?: boolean;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface NotifySlots {
    /**
     * 自定义图标
     */
    ["icon"]?: () => any;
}
interface _Notify extends BaseComponent<NotifyProps, NotifySlots> {
}
interface NotifyInstance {
    /**
     * 显示并加载配置
     */
    show: (params: NotifyShowParams) => any;
    /**
     * 显示当前主题消息提示
     * @param {string} message 展示的文字内容
     */
    primary: (message: string) => any;
    /**
     * 显示当前主题消息提示
     * @param {string} message 展示的文字内容
     */
    success: (message: string) => any;
    /**
     * 显示当前主题消息提示
     * @param {string} message 展示的文字内容
     */
    warning: (message: string) => any;
    /**
     * 显示当前主题消息提示
     * @param {string} message 展示的文字内容
     */
    error: (message: string) => any;
    /**
     * 关闭消息提示
     */
    close: () => any;
}

declare global {
    namespace UniHelper {
        type UvNotifyProps = NotifyProps;
        type UvNotify = _Notify;
        type UvNotifyInstance = NotifyInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvNotify: _Notify;
    }
}

interface NumberBoxProps {
    /**
     * 用于双向绑定的值，初始化时设置设为默认min值(最小值)
     * @default 1
     */
    value?: string | number;
    /**
     * 步进器标识符，在change回调返回
     * @default ""
     */
    name?: string | number;
    /**
     * 用户可输入的最小值
     * @default 1
     */
    min?: string | number;
    /**
     * 用户可输入的最大值
     * @default Number.MAX_SAFE_INTEGER
     */
    max?: string | number;
    /**
     * 步长，每次加或减的值， 支持小数值，如需小数
     * @default 1
     */
    step?: string | number;
    /**
     * 是否只能输入正整数
     * @default false
     */
    integer?: boolean;
    /**
     * 是否禁用操作，包括输入框，加减按钮
     * @default false
     */
    disabled?: boolean;
    /**
     * 是否禁止输入框
     * @default false
     */
    disabledInput?: boolean;
    /**
     * 是否开启异步变更，开启后需要手动控制输入值
     * @default false
     */
    asyncChange?: boolean;
    /**
     * 输入框宽度，单位px
     * @default 35
     */
    inputWidth?: string | number;
    /**
     * 是否显示减少按钮
     * @default true
     */
    showMinus?: boolean;
    /**
     * 是否显示增加按钮
     * @default true
     */
    showPlus?: boolean;
    /**
     * 显示的小数位数
     * @default ""
     */
    decimalLength?: string | number;
    /**
     * 是否允许长按进行加减
     * @default true
     */
    longPress?: boolean;
    /**
     * 输入框文字和加减按钮图标的颜色
     * @default "#323233"
     */
    color?: string;
    /**
     * 按钮大小，宽高等于此值，单位px，输入框高度和此值保持一致
     * @default 30
     */
    buttonSize?: string | number;
    /**
     * 输入框和按钮的背景颜色
     * @default "#EBECEE"
     */
    bgColor?: string;
    /**
     * 指定光标于键盘的距离，避免键盘遮挡输入框，单位px
     * @default 100
     */
    cursorSpacing?: string | number;
    /**
     * 是否禁用增加按钮
     * @default false
     */
    disablePlus?: boolean;
    /**
     * 是否禁用减少按钮
     * @default false
     */
    disableMinus?: boolean;
    /**
     * 加减按钮图标的样式
     * @default ""
     */
    iconStyle?: string;
}
interface NumberBoxEvents {
    /**
     * 输入框得到焦点触发(按钮可点击情况下)，对象形式
     * @param {string|number} value 输入框当前值
     * @param {string|number} name 步进器标识符
     */
    ["onFocus"]?: (value: string | number, name: string | number) => any;
    /**
     * 输入框失去焦点时触发，对象形式
     * @param {string|number} value 输入框当前值
     * @param {string|number} name 步进器标识符
     */
    ["onBlur"]?: (value: string | number, name: string | number) => any;
    /**
     * 输入框内容发生变化时触发，对象形式
     * @param {string|number} value 输入框当前值
     * @param {string|number} name 步进器标识符
     */
    ["onChange"]?: (value: string | number, name: string | number) => any;
    /**
     * 超过范围阈值时触发
     * @param type minus:已达最小值，plus:已达最大值
     */
    ["onOverlimit"]?: (type: "minus" | "plus") => any;
}
interface NumberBoxSlots {
    /**
     * 减少按钮
     */
    ["minus"]?: () => any;
    /**
     * 输入框
     */
    ["input"]?: () => any;
    /**
     * 增加按钮
     */
    ["plus"]?: () => any;
}
interface _NumberBox extends BaseComponent<NumberBoxProps & NumberBoxEvents, NumberBoxSlots> {
}

declare global {
    namespace UniHelper {
        type UvNumberBoxProps = NumberBoxProps;
        type UvNumberBoxEvents = NumberBoxEvents;
        type UvNumberBox = _NumberBox;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvNumberBox: _NumberBox;
    }
}

interface OverlayProps {
    /**
     * 是否显示遮罩
     * @default false
     */
    show?: boolean;
    /**
     * z-index层级
     * @default 10070
     */
    zIndex?: string | number;
    /**
     * 动画时长，单位毫秒ms
     * @default 300
     */
    duration?: string | number;
    /**
     * 不透明度值，当做rgba的第四个参数
     * @default 0.5
     */
    opacity?: string | number;
}
interface OverlayEvents {
    /**
     * 点击遮罩发送此事件
     */
    ["onClick"]?: () => any;
}
interface OverlaySlots {
    /**
     * 默认插槽，用于在遮罩层上方嵌入内容
     */
    ["default"]?: () => any;
}
interface _Overlay extends BaseComponent<OverlayProps & OverlayEvents, OverlaySlots> {
}

declare global {
    namespace UniHelper {
        type UvOverlayProps = OverlayProps;
        type UvOverlayEvents = OverlayEvents;
        type UvOverlay = _Overlay;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvOverlay: _Overlay;
    }
}

interface ParseProps {
    /**
     * 容器的样式
     * @version `1.0.3`
     * @default ""
     */
    containerStyle?: string;
    /**
     * 用于渲染的 html 字符串
     * @default ""
     */
    content?: string;
    /**
     * 是否允许外部链接被点击时自动复制
     * @default true
     */
    copyLink?: boolean;
    /**
     * 主域名（用于链接拼接）
     * @default ""
     */
    domain?: string;
    /**
     * 图片出错时的占位图链接
     * @default ""
     */
    errorImg?: string;
    /**
     * 是否开启图片懒加载
     * @default false
     */
    lazyLoad?: boolean;
    /**
     * 图片加载过程中的占位图链接
     * @default ""
     */
    loadingImg?: string;
    /**
     * 是否在播放一个视频时自动暂停其他视频
     * @default true
     */
    pauseVideo?: boolean;
    /**
     * 是否开启图片被点击时自动预览
     * @default true
     */
    previewImg?: boolean;
    /**
     * 是否给每个表格添加一个滚动层使其能单独横向滚动
     * @default false
     */
    scrollTable?: boolean;
    /**
     * 是否开启长按复制内容
     * @default false
     */
    selectable?: boolean;
    /**
     * 是否将 title 标签的内容设置到页面标题
     * @default true
     */
    setTitle?: boolean;
    /**
     * 是否允许图片被长按时显示菜单
     * @default true
     */
    showImgMenu?: boolean;
    /**
     * 设置标签的默认样式
     * @default ""
     */
    tagStyle?: Record<string, any>;
    /**
     * 是否使用锚点链接
     * @default false
     */
    useAnchor?: boolean;
}
interface ParseEvents {
    /**
     * dom 树加载完成时触发
     */
    ["onLoad"]?: () => any;
    /**
     * 渲染完成时触发，返回 boundingClientRect 的查询结果（包含宽高、位置等信息），所有图片（除懒加载）加载完成时才会触发，图片较大时可能 延时较长
     */
    ["onReady"]?: (...args: any[]) => any;
    /**
     * 出错时触发，返回一个 object，其中 source 是错误来源，errMsg 为错误信息，target 包含出错标签的具体信息
     */
    ["onError"]?: (...args: any[]) => any;
    /**
     * 图片被点击时触发，返回一个 object，其中 src 是图片链接。可以在 img 标签 设置 ignore="1" 在事件中调用将不进行预览
     */
    ["onImgtap"]?: (...args: any[]) => any;
    /**
     * 在链接被点击时触发，返回一个 object，其中包含了被点击的 a 标签的所有属性。如果需要链接不进行跳转/复制等操作，可以在 a 标签设置href="javascript:;"。可在该事件中进行下载文档等进一步操作
     */
    ["onLinktap"]?: (...args: any[]) => any;
    /**
     * 音视频播放时触发
     */
    ["onPlay"]?: () => any;
}
interface _Parse extends BaseComponent<ParseProps & ParseEvents> {
}

declare global {
    namespace UniHelper {
        type UvParseProps = ParseProps;
        type UvParseEvents = ParseEvents;
        type UvParse = _Parse;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvParse: _Parse;
    }
}

interface Color {
    r: number;
    g: number;
    b: number;
    a: number;
}
interface PickColorProps {
    /**
     * 颜色选择器初始颜色
     * @default { r: 0, g: 0, b: 0, a: 0 }
     */
    color?: Color;
    /**
     * 底部预制颜色
     * @default ""
     */
    prefabColor?: Color[];
    /**
     * 是否允许点击遮罩关闭
     * @default false
     */
    closeOnClickOverlay?: boolean;
    /**
     * 顶部标题
     * @default ""
     */
    title?: string;
    /**
     * 取消按钮的文字
     * @default "取消"
     */
    cancelText?: string;
    /**
     * 确认按钮的文字
     * @default "确定"
     */
    confirmText?: string;
    /**
     * 取消按钮的颜色
     * @default "#909193"
     */
    cancelColor?: string;
    /**
     * 确认按钮的颜色
     * @default "#3c9cff"
     */
    confirmColor?: string;
}
interface PickColorEvents {
    /**
     * 点击确定按钮触发，返回颜色值，eg：{hex: "#000000",rgba:{r:0,g:0,b:0,a:0}}
     */
    ["onConfirm"]?: (...args: any[]) => any;
    /**
     * 点击取消按钮触发
     */
    ["onCancel"]?: () => any;
    /**
     * 该组件关闭时触发
     */
    ["onClose"]?: () => any;
}
interface _PickColor extends BaseComponent<PickColorProps & PickColorEvents> {
}
interface PickColorInstance {
    /**
     * 弹出颜色选择组件
     */
    open: () => any;
    /**
     * 关闭颜色选择组件
     */
    close: () => any;
}

declare global {
    namespace UniHelper {
        type UvPickColorProps = PickColorProps;
        type UvPickColorEvents = PickColorEvents;
        type UvPickColor = _PickColor;
        type UvPickColorInstance = PickColorInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvPickColor: _PickColor;
    }
}

interface PickerProps {
    /**
     * 设置每一列的数据
     */
    columns?: (string | Record<string, any>)[][];
    /**
     * 自定义columns参数中需要展示的text属性键名
     * @default ""
     */
    keyName?: string;
    /**
     * 是否显示顶部的操作栏
     * @default true
     */
    showToolbar?: boolean;
    /**
     * 顶部中间的标题
     * @default ""
     */
    title?: string;
    /**
     * 弹窗圆角
     * @version `1.0.10`
     * @default 0
     */
    round?: string | number;
    /**
     * 加载状态
     * @default false
     */
    loading?: boolean;
    /**
     * 各列中，单个选项的高度
     * @default 44
     */
    itemHeight?: string | number;
    /**
     * 取消按钮的文字
     * @default "取消"
     */
    cancelText?: string;
    /**
     * 确认按钮的文字
     * @default "确定"
     */
    confirmText?: string;
    /**
     * 取消按钮的颜色
     * @default "#909193"
     */
    cancelColor?: string;
    /**
     * 确认按钮的颜色
     * @default "#3c9cff"
     */
    confirmColor?: string;
    /**
     * 文本颜色
     * @version `1.0.5`
     * @default "#606266"
     */
    color?: string;
    /**
     * 选中文本颜色
     * @version `1.0.5`
     * @default "#606266"
     */
    activeColor?: string;
    /**
     * 每列中可见选项的数量
     * @default 5
     */
    visibleItemCount?: string | number;
    /**
     * 是否允许点击遮罩关闭选择器
     * @default true
     */
    closeOnClickOverlay?: boolean;
    /**
     * 是否允许点击确认关闭选择器
     * @default true
     */
    closeOnClickConfirm?: boolean;
    /**
     * 各列的默认索引。如果设置该值不生效，请使用下方的setIndexs()方法
     * @default []
     */
    defaultIndex?: number[];
    /**
     * 是否在手指松开时立即触发change事件。若不开启则会在滚动动画结束后触发change事件，只在微信2.21.1及以上有效
     * @default true
     */
    immediateChange?: boolean;
}
interface PickerEvents {
    /**
     * 点击确定按钮触发
     */
    ["onConfirm"]?: (...args: any[]) => any;
    /**
     * 当选择值变化时触发
     */
    ["onChange"]?: (...args: any[]) => any;
    /**
     * 点击取消按钮触发
     */
    ["onCancel"]?: () => any;
    /**
     * 关闭选择器时触发
     */
    ["onClose"]?: () => any;
}
interface _Picker extends BaseComponent<PickerProps & PickerEvents> {
}
interface PickerInstance {
    /**
     * 弹出颜色选择组件
     */
    open: () => any;
    /**
     * 关闭颜色选择组件
     */
    close: () => any;
    /**
     * 设置对应列的选择值
     */
    setIndexs: (key: number[], value: any) => any;
    /**
     * 多列联动时需要用到
     */
    setColumnValues: (index: number, value: any) => any;
}

declare global {
    namespace UniHelper {
        type UvPickerProps = PickerProps;
        type UvPickerEvents = PickerEvents;
        type UvPicker = _Picker;
        type UvPickerInstance = PickerInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvPicker: _Picker;
    }
}

type PopupMode = "top" | "bottom" | "left" | "right" | "center";
type PopupCloseIconPos = "top-right" | "top-left" | "bottom-left" | "bottom-right";
interface PopupProps {
    /**
     * 弹出方向
     * @default "center"
     */
    mode?: PopupMode;
    /**
     * 动画时长，单位ms
     * @default 300
     */
    duration?: string | number;
    /**
     * 是否显示遮罩
     * @default true
     */
    overlay?: boolean;
    /**
     * 遮罩自定义样式，一般用于修改遮罩颜色，如：{background: 'rgba(3, 100, 219, 0.5)'}
     * @default ""
     */
    overlayStyle?: string | Record<string, any>;
    /**
     * 遮罩透明度，0-1之间，勿与overlayStyle共用
     * @default 0.5
     */
    overlayOpacity?: string | number;
    /**
     * 点击遮罩是否关闭弹窗
     * @default true
     */
    closeOnClickOverlay?: boolean;
    /**
     * 弹出层的z-index值
     * @default 10075
     */
    zIndex?: string | number;
    /**
     * 是否留出顶部安全区（状态栏高度）
     * @default false
     */
    safeAreaInsetTop?: boolean;
    /**
     * 是否为留出底部安全区适配
     * @default true
     */
    safeAreaInsetBottom?: boolean;
    /**
     * 是否显示关闭图标
     * @default false
     */
    closeable?: boolean;
    /**
     * 自定义关闭图标位置
     * @default "top-right"
     */
    closeIconPos?: PopupCloseIconPos;
    /**
     * 当mode=center时 是否开启缩放
     * @default true
     */
    zoom?: boolean;
    /**
     * 背景色，设置为""或none可去除默认的白色背景
     * @default "none"
     */
    bgColor?: string;
    /**
     * 设置圆角值，仅对mode = top | bottom | center有效
     * @default 0
     */
    round?: string | number;
    /**
     * 定义内容区需要用到的外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface PopupEvents {
    /**
     * 打开关闭弹窗触发
     */
    ["onChange"]?: (...args: any[]) => any;
    /**
     * 点击遮罩触发
     */
    ["onMaskClick"]?: () => any;
}
interface PopupSlots {
    /**
     * 弹窗内容
     */
    ["default"]?: () => any;
}
interface _Popup extends BaseComponent<PopupProps & PopupEvents, PopupSlots> {
}
interface PopupInstance {
    /**
     * 打开弹出层
     */
    open: (type?: PopupMode) => any;
    /**
     * 关闭弹出层
     */
    close: () => any;
}

declare global {
    namespace UniHelper {
        type UvPopupProps = PopupProps;
        type UvPopupEvents = PopupEvents;
        type UvPopup = _Popup;
        type UvPopupInstance = PopupInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvPopup: _Popup;
    }
}

interface QrcodeProps {
    /**
     * 二维码内容
     * @default ""
     */
    value?: string;
    /**
     * 二维码配置选项
     * @default ""
     */
    options?: Record<string, any>;
    /**
     * 二维码尺寸，单位可以是px，rpx
     * @default 200
     */
    size?: string | number;
    /**
     * 导出的文件类型
     * @default "png"
     */
    fileType?: "png" | "jpg";
    /**
     * 是否初始化组件后就开始生成
     * @default true
     */
    start?: boolean;
    /**
     * 是否数据发生改变自动重绘
     * @default true
     */
    auto?: boolean;
    /**
     * canvas 类型，微信小程序默认使用2d，其他为normal
     * @default ""
     */
    type?: "2d" | "normal";
    /**
     * 队列绘制，主要针对nvue端
     * @default false
     */
    queue?: boolean;
    /**
     * 是否队列加载图片，可减少canvas发起的网络资源请求，节省服务器资源
     * @default false
     */
    isQueueLoadImage?: boolean;
    /**
     * loading状态
     * @default true
     */
    loading?: boolean;
    /**
     * H5保存即自动下载（在支持的环境下），默认false为仅弹层提示用户需要长按图片保存，不会自动下载
     * @default false
     */
    h5SaveIsDownload?: boolean;
    /**
     * H5下载名称
     * @default "uvQRCode"
     */
    h5DownloadName?: string;
    /**
     * H5保存二维码时候是否显示提示
     * @version `1.0.3`
     * @default true
     */
    h5SaveTip?: boolean;
}
interface QrcodeEvents {
    /**
     * 生成完成时触发，返回参数 `{ success: true | false }`
     */
    ["onComplete"]?: () => any;
    /**
     * 点击组件时触发
     */
    ["onClick"]?: () => any;
    /**
     * 重绘时触发
     */
    ["onChange"]?: () => any;
}
interface QrcodeSlots {
    /**
     * 自定义加载中的提示内容
     */
    ["loading"]?: () => any;
}
interface _Qrcode extends BaseComponent<QrcodeProps & QrcodeEvents, QrcodeSlots> {
}
interface MethodParams {
    /**
     * 成功回调
     */
    success?: (res?: any) => any;
    /**
     * 失败回调
     */
    fail?: () => any;
}
interface QrcodeInstance {
    /**
     * 生成二维码
     */
    make: (params?: MethodParams) => any;
    /**
     * 重新生成二维码
     */
    remake: (params?: MethodParams) => any;
    /**
     * 导出临时文件路径。请在 complete 事件返回success=true后调用。
     */
    toTempFilePath: (params?: MethodParams) => any;
    /**
     * 保存二维码到本地相册。为了保证方法调用成功，请在 complete 事件返回success=true后调用。
     */
    save: (params?: MethodParams) => any;
    /**
     * 注册扩展插件，组件仅支持注册type为style的drawCanvas扩展。
     */
    registerStyle: (...args: any[]) => any;
}

declare global {
    namespace UniHelper {
        type UvQrcodeProps = QrcodeProps;
        type UvQrcodeEvents = QrcodeEvents;
        type UvQrcode = _Qrcode;
        type UvQrcodeInstance = QrcodeInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvQrcode: _Qrcode;
    }
}

interface RadioGroupProps {
    /**
     * 选中name的值
     * @default ""
     */
    value?: string | number | boolean;
    /**
     * 是否禁用全部checkbox
     * @default false
     */
    disabled?: boolean;
    /**
     * 形状
     * @default "circle"
     */
    shape?: Shape;
    /**
     * 选中状态下的颜色，如子Checkbox组件设置此值，将会覆盖本值
     * @default "#2979ff"
     */
    activeColor?: string;
    /**
     * 未选中的颜色
     * @default "#c8c9cc"
     */
    inactiveColor?: string;
    /**
     * 标识符
     */
    name?: string;
    /**
     * 整个组件的尺寸，默认px。**注意：该参数和iconSize应该同步设置，才能改变选框大小**
     * @default 18
     */
    size?: string | number;
    /**
     * 布局方式
     * @default "row"
     */
    placement?: Direction;
    /**
     * 文本
     * @default ""
     */
    label?: string;
    /**
     * label的字体颜色
     * @default "#303133"
     */
    labelColor?: string;
    /**
     * label的字体大小，单位px(rpx)
     * @default 14
     */
    labelSize?: string | number;
    /**
     * 是否禁止点击文本操作
     * @default false
     */
    labelDisabled?: boolean;
    /**
     * 图标颜色
     * @default "#ffffff"
     */
    iconColor?: string;
    /**
     * 图标的大小，单位px(rpx)
     * @default 12
     */
    iconSize?: string | number;
    /**
     * 竖向配列时，是否显示下划线
     * @default false
     */
    borderBottom?: boolean;
    /**
     * 勾选图标的对齐方式
     * @default "left"
     */
    iconPlacement?: IconPlacement;
    /**
     * 自定义样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface RadioGroupEvents {
    /**
     * 任一个radio状态发生变化时触发
     * @param {string|number|boolean} name props传递的name值
     */
    ["onChange"]?: (name: string | number | boolean) => any;
}
interface _RadioGroup extends BaseComponent<RadioGroupProps & RadioGroupEvents> {
}

declare global {
    namespace UniHelper {
        type UvRadioGroupProps = RadioGroupProps;
        type UvRadioGroupEvents = RadioGroupEvents;
        type UvRadioGroup = _RadioGroup;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvRadioGroup: _RadioGroup;
    }
}

interface RadioProps {
    /**
     * radio的名称
     * @default ""
     */
    name?: string | number | boolean;
    /**
     * 形状
     * @default "circle"
     */
    shape?: Shape;
    /**
     * 是否禁用
     * @default false
     */
    disabled?: boolean;
    /**
     * 是否禁止点击提示语选中复选框
     * @default false
     */
    labelDisabled?: boolean;
    /**
     * 选中状态下的颜色，如设置此值，将会覆盖parent的activeColor值
     * @default ""
     */
    activeColor?: string;
    /**
     * 未选中的颜色
     * @default ""
     */
    inactiveColor?: string;
    /**
     * 图标的大小，单位px(rpx)
     * @default ""
     */
    iconSize?: string | number;
    /**
     * label的字体大小，单位px(rpx)
     * @default ""
     */
    labelSize?: string | number;
    /**
     * label提示文字
     * @default ""
     */
    label?: string | number;
    /**
     * 整体的大小
     * @default ""
     */
    size?: string | number;
    /**
     * 图标颜色
     * @default ""
     */
    iconColor?: string;
    /**
     * label的颜色
     * @default ""
     */
    labelColor?: string;
}
interface RadioEvents {
    /**
     * 某个radio状态发生变化时触发(选中状态)
     * @param {string|number|boolean} name props传递的name参数
     */
    ["onChange"]?: (name: string | number | boolean) => any;
}
interface RadioSlots {
    /**
     * 自定义label内容，自定义后，labelDisabled设置将会失效
     */
    ["default"]?: () => any;
    /**
     * 自定义选中图标
     */
    ["icon"]?: () => any;
}
interface _Radio extends BaseComponent<RadioProps & RadioEvents, RadioSlots> {
}

declare global {
    namespace UniHelper {
        type UvRadioProps = RadioProps;
        type UvRadioEvents = RadioEvents;
        type UvRadio = _Radio;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvRadio: _Radio;
    }
}

interface RateProps {
    /**
     * 双向绑定选择星星的数量
     * @default 1
     */
    value?: string | number;
    /**
     * 最多可选的星星数量
     * @default 5
     */
    count?: string | number;
    /**
     * 是否禁止用户操作
     * @default false
     */
    disabled?: boolean;
    /**
     * 是否只读
     * @default false
     */
    readonly?: boolean;
    /**
     * 星星的大小，单位rpx
     * @default 18
     */
    size?: string | number;
    /**
     * 未选中星星的颜色
     * @default "#b2b2b2"
     */
    inactiveColor?: string;
    /**
     * 选中的星星颜色
     * @default "#FA3534"
     */
    activeColor?: string;
    /**
     * 星星之间的距离
     * @default 4
     */
    gutter?: string | number;
    /**
     * 最少选中星星的个数
     * @default 1
     */
    minCount?: string | number;
    /**
     * 是否允许半星选择
     * @default false
     */
    allowHalf?: boolean;
    /**
     * 选中时的图标名，只能为uv-ui的内置图标
     * @default "star-fill"
     */
    activeIcon?: string;
    /**
     * 未选中时的图标名，只能为uv-ui的内置图标
     * @default "star"
     */
    inactiveIcon?: string;
    /**
     * 是否可以通过滑动手势选择评分
     * @default true
     */
    touchable?: boolean;
}
interface RateEvents {
    /**
     * 选中的星星发生变化时触发
     * @param {string|number} value 当前选中的星星的数量，如果使用v-model双向绑定方式，无需监听此事件
     */
    ["onChange"]?: (value: string | number) => any;
}
interface _Rate extends BaseComponent<RateProps & RateEvents> {
}

declare global {
    namespace UniHelper {
        type UvRateProps = RateProps;
        type UvRateEvents = RateEvents;
        type UvRate = _Rate;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvRate: _Rate;
    }
}

interface ShadowStyle {
    /**
     * 如果您不想要阴影，将backgroundImage设置为none即可
     */
    backgroundImage?: string;
    /**
     * 自行调整至合适数值即可
     */
    paddingTop?: string;
    /**
     * 自行调整至合适数值即可
     */
    marginTop?: string;
}
interface ReadMoreProps {
    /**
     * 内容超出此高度才会显示展开全文按钮，单位rpx
     * @default 400
     */
    showHeight?: string | number;
    /**
     * 展开后是否显示收起按钮
     * @default false
     */
    toggle?: boolean;
    /**
     * 关闭时的提示文字
     * @default "展开阅读全文"
     */
    closeText?: string;
    /**
     * 展开时的提示文字
     * @default "收起"
     */
    openText?: string;
    /**
     * 提示文字的颜色
     * @default "#2979ff"
     */
    color?: string;
    /**
     * 提示文字的大小，默认单位px
     * @default 14
     */
    fontSize?: string | number;
    /**
     * 对阴影的自定义处理
     */
    shadowStyle?: ShadowStyle;
    /**
     * 段落首行缩进的字符个数
     * @default "2em"
     */
    textIndent?: string;
    /**
     * 用于在open和close事件中当作回调参数返回
     * @default ""
     */
    name?: string | number;
}
interface ReadMoreEvents {
    /**
     * 内容被展开时触发
     * @param {string|number} name props中传入的name参数值
     */
    ["onOpen"]?: (name: string | number) => any;
    /**
     * 内容被收起时触发
     * @param {string|number} name props中传入的name参数值
     */
    ["onClose"]?: (name: string | number) => any;
}
interface _ReadMore extends BaseComponent<ReadMoreProps & ReadMoreEvents> {
}
interface ReadMoreInstance {
    /**
     * 重新初始化组件内部高度计算过程，如果内嵌uv-parse组件时可能需要用到
     */
    init: () => any;
}

declare global {
    namespace UniHelper {
        type UvReadMoreProps = ReadMoreProps;
        type UvReadMoreEvents = ReadMoreEvents;
        type UvReadMore = _ReadMore;
        type UvReadMoreInstance = ReadMoreInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvReadMore: _ReadMore;
    }
}

interface SafeBottomProps {
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface _SafeBottom extends BaseComponent<SafeBottomProps> {
}

declare global {
    namespace UniHelper {
        type UvSafeBottomProps = SafeBottomProps;
        type UvSafeBottom = _SafeBottom;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSafeBottom: _SafeBottom;
    }
}

interface ScrollListProps {
    /**
     * 指示器的整体宽度
     * @default 50
     */
    indicatorWidth?: string | number;
    /**
     * 滑块的宽度
     * @default 20
     */
    indicatorBarWidth?: string | number;
    /**
     * 是否显示面板指示器
     * @default true
     */
    indicator?: boolean;
    /**
     * 指示器非激活颜色
     * @default "#f2f2f2"
     */
    indicatorColor?: string;
    /**
     * 指示器滑块颜色
     * @default "#3c9cff"
     */
    indicatorActiveColor?: string;
    /**
     * 指示器样式
     * @default ""
     */
    indicatorStyle?: string | {
        bottom?: string;
        left?: string;
        right?: string;
    };
}
interface ScrollListEvents {
    /**
     * 滑动到左边时触发
     */
    ["onLeft"]?: () => any;
    /**
     * 滑动到右边时触发
     */
    ["onRight"]?: () => any;
}
interface _ScrollList extends BaseComponent<ScrollListProps & ScrollListEvents> {
}

declare global {
    namespace UniHelper {
        type UvScrollListProps = ScrollListProps;
        type UvScrollListEvents = ScrollListEvents;
        type UvScrollList = _ScrollList;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvScrollList: _ScrollList;
    }
}

type SearchShape = "round" | "square";
type SearchInputAlign = "left" | "center" | "right";
interface SearchProps {
    /**
     * 双向绑定输入框搜索值
     * @default ""
     */
    value?: string;
    /**
     * 搜索框形状
     * @default "round"
     */
    shape?: SearchShape;
    /**
     * 搜索框背景颜色
     * @default "#f2f2f2"
     */
    bgColor?: string;
    /**
     * 占位文字内容
     * @default "请输入关键字"
     */
    placeholder?: string;
    /**
     * 是否启用清除控件
     * @default true
     */
    clearabled?: boolean;
    /**
     * 是否自动获得焦点
     * @default false
     */
    focus?: boolean;
    /**
     * 是否显示右侧控件(右侧的"搜索"按钮)
     * @default true
     */
    showAction?: boolean;
    /**
     * 右侧控件的样式，对象形式
     * @default ""
     */
    actionStyle?: Record<string, any>;
    /**
     * 右侧控件文字
     * @default "搜索"
     */
    actionText?: string;
    /**
     * 输入框内容水平对齐方式
     * @default "left"
     */
    inputAlign?: SearchInputAlign;
    /**
     * 自定义输入框样式，对象形式
     * @default ""
     */
    inputStyle?: Record<string, any>;
    /**
     * 是否启用输入框
     * @default false
     */
    disabled?: boolean;
    /**
     * 边框颜色，配置了颜色，才会有边框
     * @default "transparent"
     */
    borderColor?: string;
    /**
     * 搜索图标的颜色，默认同输入框字体颜色
     * @default "#909399"
     */
    searchIconColor?: string;
    /**
     * 搜索图标的大小
     * @default 22
     */
    searchIconSize?: number;
    /**
     * 输入框字体颜色
     * @default "#606266"
     */
    color?: string;
    /**
     * placeholder的颜色
     * @default "#909399"
     */
    placeholderColor?: string;
    /**
     * 输入框左边的图标，可以为uv-ui图标名称或图片路径
     * @default "search"
     */
    searchIcon?: string;
    /**
     * 组件与其他上下左右元素之间的距离，带单位的字符串形式，如"30rpx"、"30rpx 20rpx"等写法
     * @default "0"
     */
    margin?: string;
    /**
     * 是否开启动画
     * @default false
     */
    animation?: boolean;
    /**
     * 输入框最大能输入的长度，-1为不限制长度
     * @default -1
     */
    maxlength?: string | number;
    /**
     * 输入框高度，单位rpx
     * @default 64
     */
    height?: string | number;
    /**
     * 搜索左侧文本信息
     * @default ""
     */
    label?: string | number;
    /**
     * 自定义输入框部分的样式
     * @version `1.0.6`
     * @default ""
     */
    boxStyle?: Record<string, any>;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface SearchEvents {
    /**
     * 输入框内容发生变化时触发
     * @param {string} value 输入框的值
     */
    ["onChange"]?: (value: string) => any;
    /**
     * 用户确定搜索时触发，用户按回车键，或者手机键盘右下角的"搜索"键时触发
     * @param {string} value 输入框的值
     */
    ["onSearch"]?: (value: string) => any;
    /**
     * 用户点击右侧控件时触发
     * @param {string} value 输入框的值
     */
    ["onCustom"]?: (value: string) => any;
    /**
     * 输入框失去焦点时触发
     * @param {string} value 输入框的值
     */
    ["onBlur"]?: (value: string) => any;
    /**
     * 输入框获得焦点时触发
     * @param {string} value 输入框的值
     */
    ["onFocus"]?: (value: string) => any;
    /**
     * 配置了clearabled后，清空内容时会发出此事件
     */
    ["onClear"]?: () => any;
    /**
     * disabled为true时，点击输入框，发出此事件，用于跳转搜索页
     */
    ["onClick"]?: () => any;
    /**
     * 左侧icon点击时候时触发
     */
    ["onClickIcon"]?: () => any;
}
interface SearchSlots {
    /**
     * 前置插槽，可替换输入框前面的图标等场景
     * @version `1.0.6`
     */
    ["prefix"]?: () => any;
    /**
     * 后置插槽，可在输入框后面增加按钮等场景
     * @version `1.0.6`
     */
    ["suffix"]?: () => any;
}
interface _Search extends BaseComponent<SearchProps & SearchEvents, SearchSlots> {
}

declare global {
    namespace UniHelper {
        interface UvSearchProps extends SearchProps {
        }
        interface UvSearchEvents extends SearchEvents {
        }
        interface UvSearch extends _Search {
        }
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSearch: _Search;
    }
}

interface SkeletonProps {
    /**
     * 是否显示骨架占位图，设置为false将会展示子组件内容
     * @default true
     */
    loading?: boolean;
    /**
     * 是否开启动画效果
     * @default true
     */
    animate?: boolean;
    /**
     * 段落占位图行数
     * @default 0
     */
    rows?: string | number;
    /**
     * 段落占位图的宽度，可以为百分比，数值，带单位字符串等，可通过数组传入指定每个段落行的宽度
     * @default "100%"
     */
    rowsWidth?: string | number | (string | number)[];
    /**
     * 段落的高度
     * @default 18
     */
    rowsHeight?: string | number | (string | number)[];
    /**
     * 是否展示标题占位图
     * @default true
     */
    title?: boolean;
    /**
     * 标题的宽度
     * @default "50%"
     */
    titleWidth?: string | number;
    /**
     * 标题的高度
     * @default 18
     */
    titleHeight?: string | number;
    /**
     * 是否展示头像占位图
     * @default false
     */
    avatar?: boolean;
    /**
     * 头像占位图大小
     * @default 32
     */
    avatarSize?: string | number;
    /**
     * 头像占位图的形状
     * @default "circle"
     */
    avatarShape?: Shape;
}
interface _Skeleton extends BaseComponent<SkeletonProps> {
}

declare global {
    namespace UniHelper {
        type UvSkeletonProps = SkeletonProps;
        type UvSkeleton = _Skeleton;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSkeleton: _Skeleton;
    }
}

type SkeletonOption = {
    /**
     * 骨架类型
     */
    type?: "line" | "avatar" | "flex" | "custom";
    /**
     * 重复数量
     */
    num?: number;
    /**
     * 骨架下边距
     */
    gap?: string;
    /**
     * 骨架样式
     */
    style?: string | Record<string, any>;
} | number;
interface SkeletonsProps {
    /**
     * 是否显示骨架
     * @default true
     */
    loading?: boolean;
    /**
     * 是否开启动画效果
     * @default true
     */
    animate?: boolean;
    /**
     * 骨架内容
     * @default []
     */
    skeleton?: Array<SkeletonOption>;
}
interface _Skeletons extends BaseComponent<SkeletonsProps> {
}

declare global {
    namespace UniHelper {
        type UvSkeletonsProps = SkeletonsProps;
        type UvSkeletons = _Skeletons;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSkeletons: _Skeletons;
    }
}

interface SliderProps {
    /**
     * 双向绑定滑块选择值
     * @default 0
     */
    value?: string | number;
    /**
     * 可选的最小值(0-100之间)
     * @default 1
     */
    min?: string | number;
    /**
     * 可选的最大值(0-100之间)
     * @default 100
     */
    max?: string | number;
    /**
     * 选择的步长
     * @default 1
     */
    step?: string | number;
    /**
     * 滑块左侧已选择部分的线条颜色
     * @default "#2979ff"
     */
    activeColor?: string;
    /**
     * 滑块右侧背景条的颜色
     * @default "#c0c4cc"
     */
    backgroundColor?: string;
    /**
     * 滑块的大小，取值范围为 12 - 28
     * @default 18
     */
    blockSize?: string | number;
    /**
     * 滑块的颜色
     * @default "#ffffff"
     */
    blockColor?: string;
    /**
     * 是否显示当前 value
     * @default false
     */
    showValue?: boolean;
    /**
     * 滑块按钮自定义样式
     * @default ""
     */
    blockStyle?: string | Record<string, any>;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface SliderEvents {
    /**
     * 更新v-model的（拖动过程中）
     * @param {string|number} value 当前值
     */
    ["onInput"]?: (value: string | number) => any;
    /**
     * 触发事件（拖动过程中）
     * @param {string|number} value 当前值
     */
    ["onChanging"]?: (value: string | number) => any;
    /**
     * 触发事件
     * @param {string|number} value 当前值
     */
    ["onChange"]?: (value: string | number) => any;
}
interface _Slider extends BaseComponent<SliderProps & SliderEvents> {
}

declare global {
    namespace UniHelper {
        type UvSliderProps = SliderProps;
        type UvSliderEvents = SliderEvents;
        type UvSlider = _Slider;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSlider: _Slider;
    }
}

interface StatusBarProps {
    /**
     * 背景色
     * @default "transparent"
     */
    bgColor?: string;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface StatusBarSlots {
    /**
     * 自定义内容
     */
    ["default"]?: () => any;
}
interface _StatusBar extends BaseComponent<StatusBarProps, StatusBarSlots> {
}

declare global {
    namespace UniHelper {
        type UvStatusBarProps = StatusBarProps;
        type UvStatusBarSlots = StatusBarSlots;
        type UvStatusBar = _StatusBar;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvStatusBar: _StatusBar;
    }
}

interface StepsItemProps {
    /**
     * 标题文字
     * @default ""
     */
    title?: string;
    /**
     * 描述文本
     * @default ""
     */
    desc?: string;
    /**
     * 图标大小，需要uv-steps设置activeIcon或inactiveIcon。单位px(rpx)
     * @default 17
     */
    iconSize?: string | number;
    /**
     * 当前步骤是否处于失败状态
     * @default false
     */
    error?: boolean;
    /**
     * 自定义外部样式，可以利用该属性设置padding调整间距等场景
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface StepsItemSlots {
    /**
     * 自定义图标
     */
    ["icon"]?: () => any;
    /**
     * 自定义标题文字
     */
    ["title"]?: () => any;
    /**
     * 自定义描述文字
     */
    ["desc"]?: () => any;
}
interface _StepsItem extends BaseComponent<StepsItemProps, StepsItemSlots> {
}

declare global {
    namespace UniHelper {
        type UvStepsItemProps = StepsItemProps;
        type UvStepsItem = _StepsItem;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvStepsItem: _StepsItem;
    }
}

interface StepsProps {
    /**
     * 方向
     * @default "row"
     */
    direction?: Direction;
    /**
     * 设置当前处于第几步
     * @default 0
     */
    current?: string | number;
    /**
     * 激活状态颜色
     * @default "#3c9cff"
     */
    activeColor?: string;
    /**
     * 未激活状态颜色
     * @default "#969799"
     */
    inactiveColor?: string;
    /**
     * 未激活状态图标
     * @default ""
     */
    inactiveIcon?: string;
    /**
     * 是否显示点类型
     * @default false
     */
    dot?: boolean;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface _Steps extends BaseComponent<StepsProps> {
}

declare global {
    namespace UniHelper {
        type UvStepsProps = StepsProps;
        type UvSteps = _Steps;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSteps: _Steps;
    }
}

interface StickyProps {
    /**
     * 吸顶时与顶部的距离，单位px(rpx)
     * @default 0
     */
    offsetTop?: string | number;
    /**
     * 导航栏高度，自定义导航栏时，需要传入此值
     * @default 0
     */
    customNavHeight?: string | number;
    /**
     * 是否禁用吸顶功能
     * @default false
     */
    disabled?: boolean;
    /**
     * 组件背景颜色
     * @default "#ffffff"
     */
    bgColor?: string;
    /**
     * 吸顶时的z-index值，NVUE无效
     * @default ""
     */
    zIndex?: string | number;
    /**
     * 自定义标识，用于区分是哪一个组件
     * @default ""
     */
    index?: string | number;
}
interface _Sticky extends BaseComponent<StickyProps> {
}

declare global {
    namespace UniHelper {
        type UvStickyProps = StickyProps;
        type UvSticky = _Sticky;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSticky: _Sticky;
    }
}

type SubsectionMode = "button" | "subsection";
interface SubsectionProps {
    /**
     * 选项的数组
     * @default ""
     */
    list?: string[] | Record<string, any>[];
    /**
     * 从list元素对象中读取的键名
     * @default "name"
     */
    keyName?: string;
    /**
     * 初始化时默认选中的选项索引值
     * @default 0
     */
    current?: string | number;
    /**
     * 激活时的颜色
     * @default "#3c9cff"
     */
    activeColor?: string;
    /**
     * 未激活时的颜色
     * @default "#303133"
     */
    inactiveColor?: string;
    /**
     * 模式选择
     * @default "button"
     */
    mode?: SubsectionMode;
    /**
     * 字体大小，单位px(rpx)
     * @default 12
     */
    fontSize?: string | number;
    /**
     * 激活选项的字体是否加粗
     * @default true
     */
    bold?: boolean;
    /**
     * 组件背景颜色，mode为button时有效
     * @default "#eeeeef"
     */
    bgColor?: string;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
    /**
     * 自定义bar样式
     * @default ""
     */
    customItemStyle?: string | Record<string, any>;
}
interface SubsectionEvents {
    /**
     * 分段器选项发生改变时触发
     * @param {number} index 选项的index索引值，从0开始
     */
    ["onChange"]?: (index: number) => any;
}
interface _Subsection extends BaseComponent<SubsectionProps & SubsectionEvents> {
}

declare global {
    namespace UniHelper {
        type UvSubsectionProps = SubsectionProps;
        type UvSubsectionEvents = SubsectionEvents;
        type UvSubsection = _Subsection;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSubsection: _Subsection;
    }
}

interface SwipeActionItemOption {
    /**
     * 按钮文字
     */
    text?: string;
    /**
     * 样式
     */
    style?: Record<string, any>;
}
interface SwipeActionItemProps {
    /**
     * 控制打开或者关闭
     * @default false
     */
    show?: boolean;
    /**
     * 标识符，如果是v-for，可用index索引
     * @default ""
     */
    index?: string | number;
    /**
     * 是否禁用
     * @default false
     */
    disabled?: false;
    /**
     * 是否自动关闭其他swipe按钮组
     * @default true
     */
    autoClose?: boolean;
    /**
     * 滑动距离阈值，只有大于此值，才被认为是要打开菜单
     * @default 20
     */
    threshold?: number;
    /**
     * 右侧按钮内容
     * @default []
     */
    options?: SwipeActionItemOption[];
    /**
     * 动画过渡时间，单位ms
     * @default 300
     */
    duration?: string | number;
    /**
     * 标识符，如果是v-for，可用index索引值
     * @default ""
     */
    name?: string | number;
}
interface SwipeActionItemEvents {
    /**
     * 按钮被点击时触发
     * @param {string|number} name props参数name的值
     * @param {number} index 第几个按钮被点击
     */
    ["onClick"]?: (name: string | number, index: number) => any;
}
interface _SwipeActionItem extends BaseComponent<SwipeActionItemProps & SwipeActionItemEvents> {
}

declare global {
    namespace UniHelper {
        type UvSwipeActionItemProps = SwipeActionItemProps;
        type UvSwipeActionItemEvents = SwipeActionItemEvents;
        type UvSwipeActionItem = _SwipeActionItem;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSwipeActionItem: _SwipeActionItem;
    }
}

interface SwipeActionProps {
    /**
     * 是否自动关闭其他swipe按钮组
     * @default true
     */
    autoClose?: boolean;
}
interface SwipeActionEvents {
    /**
     * 点击组件时触发
     * @param {number} index 第几个被点击
     */
    ["onClick"]?: (index: number) => any;
}
interface _SwipeAction extends BaseComponent<SwipeActionProps & SwipeActionEvents> {
}

declare global {
    namespace UniHelper {
        type UvSwipeActionProps = SwipeActionProps;
        type UvSwipeActionEvents = SwipeActionEvents;
        type UvSwipeAction = _SwipeAction;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSwipeAction: _SwipeAction;
    }
}

interface SwiperOnChangeFuncE {
    current?: number;
    [key: string]: any;
}
type SwiperIndicatorMode = "line" | "dot";
type SwiperEasingFunction = "default" | "linear" | "easeInCubic" | "easeOutCubic" | "easeInOutCubic";
interface ListItem {
    /**
     * 标题
     */
    title?: string;
    /**
     * 视频封面
     */
    poster?: string;
    /**
     * 资源类型
     */
    type?: "image" | "video";
    /**
     * 图片地址
     */
    url?: string;
    /**
     * 其他参数
     */
    [x: string]: any;
}
interface SwiperProps {
    /**
     * 轮播图数据
     */
    list?: string[] | ListItem[];
    /**
     * 是否显示面板指示器
     * @default false
     */
    indicator?: boolean;
    /**
     * 指示器激活的颜色
     * @default "#ffffff"
     */
    indicatorActiveColor?: string;
    /**
     * 指示器非激活颜色
     * @default "rgba(255, 255, 255, 0.35)"
     */
    indicatorInactiveColor?: string;
    /**
     * 指示器样式
     * @default ""
     */
    indicatorStyle?: string | {
        bottom?: string;
        left?: string;
        right?: string;
    };
    /**
     * 指示器模式
     * @default "line"
     */
    indicatorMode?: SwiperIndicatorMode;
    /**
     * 是否自动切换
     * @default true
     */
    autoplay?: boolean;
    /**
     * 当前所在滑块的 index
     * @default 0
     */
    current?: string | number;
    /**
     * 当前所在滑块的 item-id ，不能与 current 被同时指定
     * @default ""
     */
    currentItemId?: string;
    /**
     * 滑块自动切换时间间隔（ms）
     * @default 3000
     */
    interval?: string | number;
    /**
     * 滑块切换过程所需时间（ms），nvue不支持
     * @default 300
     */
    duration?: string | number;
    /**
     * 播放到末尾后是否重新回到开头
     * @default false
     */
    circular?: boolean;
    /**
     * 滑动方向是否为纵向
     * @default false
     */
    vertical?: boolean;
    /**
     * 前边距，可用于露出前一项的一小部分，nvue和支付宝不支持
     * @default 0
     */
    previousMargin?: string | number;
    /**
     * 后边距，可用于露出后一项的一小部分，nvue和支付宝不支持
     * @default 0
     */
    nextMargin?: string | number;
    /**
     * 当开启时，会根据滑动速度，连续滑动多屏，支付宝不支持
     * @default false
     */
    acceleration?: boolean;
    /**
     * 同时显示的滑块数量，nvue、支付宝小程序不支持
     * @default 1
     */
    displayMultipleItems?: number;
    /**
     * 指定swiper切换缓动动画类型， 只对微信小程序有效
     * @default "default"
     */
    easingFunction?: SwiperEasingFunction;
    /**
     * list数组中指定对象的目标属性名
     * @default "url"
     */
    keyName?: string;
    /**
     * 图片的裁剪模式
     * @default "aspectFill"
     */
    imgMode?: ImageMode;
    /**
     * 组件高度
     * @default 130
     */
    height?: string | number;
    /**
     * 背景颜色
     * @default "#f3f4f6"
     */
    bgColor?: string;
    /**
     * 组件圆角，数值或带单位的字符串
     * @default 4
     */
    radius?: string | number;
    /**
     * 是否加载中
     * @default false
     */
    loading?: boolean;
    /**
     * 是否显示标题，要求数组对象中有title属性
     * @default false
     */
    showTitle?: boolean;
    /**
     * 显示的标题样式
     * @version `1.0.3`
     * @default ""
     */
    titleStyle?: Record<string, any>;
}
interface SwiperEvents {
    /**
     * 点击轮播图时触发
     * @param {number} index 点击了第几张图片，从0开始
     */
    ["onClick"]?: (index: number) => any;
    /**
     * 轮播图切换时触发(自动或者手动切换)
     * @param {number} index 切换到了第几张图片，从0开始
     */
    ["onChange"]?: (e?: SwiperOnChangeFuncE) => any;
}
interface SwiperSlots {
    /**
     * 指示器
     */
    ["indicator"]?: () => any;
}
interface _Swiper extends BaseComponent<SwiperProps & SwiperEvents, SwiperSlots> {
}

declare global {
    namespace UniHelper {
        type UvSwiperProps = SwiperProps;
        type UvSwiperEvents = SwiperEvents;
        type UvSwiper = _Swiper;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSwiper: _Swiper;
    }
}

interface SwitchProps {
    /**
     * 双向绑定的值
     * @description 只能使用v-model传值，避免异步操作不生效的BUG
     * @version `1.1.8`
     * @default false
     */
    value?: boolean | string | number;
    /**
     * 是否处于加载中
     * @default false
     */
    loading?: boolean;
    /**
     * 是否禁用
     * @default false
     */
    disabled?: boolean;
    /**
     * 开关尺寸，单位rpx
     * @default 25
     */
    size?: string | number;
    /**
     * 打开时的背景色
     * @default "#2979ff"
     */
    activeColor?: string;
    /**
     * 关闭时的背景色
     * @default "#ffffff"
     */
    inactiveColor?: string;
    /**
     * switch打开时的值
     * @default true
     */
    activeValue?: boolean | string | number;
    /**
     * switch关闭时的值
     * @default false
     */
    inactiveValue?: boolean | string | number;
    /**
     * 是否开启异步变更，开启后需要手动控制输入值
     * @default false
     */
    asyncChange?: boolean;
    /**
     * 圆点与外边框的距离
     * @default 0
     */
    space?: string | number;
}
interface SwitchEvents {
    /**
     * 在switch打开或关闭时触发
     * @param {boolean|string|number} value 打开时为activeValue值，关闭时为inactiveValue值
     */
    ["onChange"]?: (value: boolean | string | number) => any;
    /**
     * 在switch打开或关闭时触发（没开启异步）
     * @param {boolean|string|number} value 打开时为activeValue值，关闭时为inactiveValue值
     */
    ["onInput"]?: (value: boolean | string | number) => any;
}
interface _Switch extends BaseComponent<SwitchProps & SwitchEvents> {
}

declare global {
    namespace UniHelper {
        type UvSwitchProps = SwitchProps;
        type UvSwitchEvents = SwitchEvents;
        type UvSwitch = _Switch;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvSwitch: _Switch;
    }
}

interface TabbarItemProps {
    /**
     * item标签的名称，作为与uv-tabbar的value参数匹配的标识符
     * @default ""
     */
    name?: string | number;
    /**
     * uv-ui内置图标或者绝对路径的图片
     * @default ""
     */
    icon?: string;
    /**
     * 图标大小
     * @default 20
     */
    iconSize?: string | number;
    /**
     * 右上角的角标提示信息
     * @default ""
     */
    badge?: string | number;
    /**
     * 是否显示圆点，将会覆盖badge参数
     * @default false
     */
    dot?: boolean;
    /**
     * 描述文本
     * @default ""
     */
    text?: string;
    /**
     * 控制徽标的位置，对象或者字符串形式，可以设置top和right属性
     * @default "top: 6px; right:2px;"
     */
    badgeStyle?: string | Record<string, any>;
}
interface TabbarItemEvents {
    /**
     * 切换选项时触发
     * @param {string|number} index 当前要切换项的index或name
     */
    ["onClick"]?: (index: string | number) => any;
}
interface _TabbarItem extends BaseComponent<TabbarItemProps & TabbarItemEvents> {
}

declare global {
    namespace UniHelper {
        type UvTabbarItemProps = TabbarItemProps;
        type UvTabbarItemEvents = TabbarItemEvents;
        type UvTabbarItem = _TabbarItem;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvTabbarItem: _TabbarItem;
    }
}

interface TabbarProps {
    /**
     * 当前匹配项的index。TabBarItem设置了name属性则匹配的name
     * @default ""
     */
    value?: string | number;
    /**
     * 是否为iPhoneX留出底部安全距离
     * @default true
     */
    safeAreaInsetBottom?: boolean;
    /**
     * 是否显示上方边框
     * @default true
     */
    border?: boolean;
    /**
     * 元素层级z-index
     * @default 1
     */
    zIndex?: string | number;
    /**
     * 选中标签的颜色
     * @default "#1989fa"
     */
    activeColor?: string;
    /**
     * 未选中标签的颜色
     * @default "#7d7e80"
     */
    inactiveColor?: string;
    /**
     * 是否固定在底部
     * @default true
     */
    fixed?: boolean;
    /**
     * fixed定位固定在底部时，是否生成一个等高元素防止塌陷
     * @default true
     */
    placeholder?: boolean;
    /**
     * 图标大小，自定义图片图标设置该属性无效
     * @default 20
     */
    iconSize?: string | number;
    /**
     * 自定义样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface TabbarEvents {
    /**
     * 切换选项时触发
     * @param {string|number} index 当前要切换项的index或name
     */
    ["onChange"]?: (index: string | number) => any;
}
interface _Tabbar extends BaseComponent<TabbarProps & TabbarEvents> {
}

declare global {
    namespace UniHelper {
        type UvTabbarProps = TabbarProps;
        type UvTabbarEvents = TabbarEvents;
        type UvTabbar = _Tabbar;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvTabbar: _Tabbar;
    }
}

interface TabsOnChangeFuncE {
    index?: number;
    [key: string]: any;
}
interface TabsProps {
    /**
     * 滑块移动一次所需的时间，单位ms
     * @default 300
     */
    duration?: string | number;
    /**
     * 标签数组，元素为对象
     * @default ""
     */
    list?: Record<string, any>[];
    /**
     * 滑块颜色
     * @default "#3c9cff"
     */
    lineColor?: string;
    /**
     * 菜单选择中时的样式
     * @default "{ color: '#303133' }"
     */
    activeStyle?: string | Record<string, any>;
    /**
     * 菜单非选中时的样式
     * @default "{ color: '#606266' }"
     */
    inactiveStyle?: string | Record<string, any>;
    /**
     * 滑块长度
     * @default 20
     */
    lineWidth?: string | number;
    /**
     * 滑块高度
     * @default 3
     */
    lineHeight?: string | number;
    /**
     * 滑块背景显示大小，当滑块背景设置为图片时使用
     * @default "cover"
     */
    lineBgSize?: string;
    /**
     * 菜单item的样式
     * @default "{ height: '44px' }"
     */
    itemStyle?: string | Record<string, any>;
    /**
     * 菜单是否可滚动，**选项很少的时候设置为false整个tabs自动居中显示**
     * @default true
     */
    scrollable?: boolean;
    /**
     * 当前选中标签的索引
     * @default 0
     */
    current?: string | number;
    /**
     * 从list元素对象中读取的键名
     * @default "name"
     */
    keyName?: string;
    /**
     * 自定义样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface TabsEvents {
    /**
     * 点击标签时触发
     * @param {number} index 标签索引值
     * @param {any} item 传入的其他值
     */
    ["onClick"]?: (index: number, item: any) => any;
    /**
     * 标签索引改变时触发(disalbed时不会触发)
     * @param {TabsOnChangeFuncE} e 标签索引值
     */
    ["onChange"]?: (e?: TabsOnChangeFuncE) => any;
}
interface _Tabs extends BaseComponent<TabsProps & TabsEvents> {
}

declare global {
    namespace UniHelper {
        type UvTabsProps = TabsProps;
        type UvTabsEvents = TabsEvents;
        type UvTabs = _Tabs;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvTabs: _Tabs;
    }
}

type TagsSize = "medium" | "large" | "mini";
interface TagsProps {
    /**
     * 主题类型
     * @default "primary"
     */
    type?: ColorType;
    /**
     * 不可用
     * @default false
     */
    disabled?: boolean;
    /**
     * 标签大小
     * @default "medium"
     */
    size?: TagsSize;
    /**
     * 标签形状
     * @default "square"
     */
    shape?: Shape;
    /**
     * 标签的文字内容
     * @default ""
     */
    text?: string | number;
    /**
     * 背景颜色，默认为空字符串，即不处理
     * @default "#C6C7CB"
     */
    bgColor?: string;
    /**
     * 标签字体颜色，默认为空字符串，即不处理
     * @default ""
     */
    color?: string;
    /**
     * 标签的边框颜色
     * @default ""
     */
    borderColor?: string;
    /**
     * 关闭按钮图标的颜色
     * @default ""
     */
    closeColor?: string;
    /**
     * 点击时返回的索引值，用于区分例遍的数组哪个元素被点击了
     * @default ""
     */
    name?: string | number;
    /**
     * 镂空时是否填充背景色
     * @default false
     */
    plainFill?: boolean;
    /**
     * 是否镂空
     * @default false
     */
    plain?: boolean;
    /**
     * 是否可关闭，设置为true，文字右边会出现一个关闭图标
     * @default false
     */
    closable?: boolean;
    /**
     * 标签显示与否
     * @default true
     */
    show?: boolean;
    /**
     * 内置图标，或绝对路径的图片
     * @default ""
     */
    icon?: string;
    /**
     * 是否属于cell节点下。nvue模式下的该组件在cell或uv-list等组件下使用，该值最好是设置成true，避免回收后不显示的BUG。	Boolean	false	true | false
     * @default false
     */
    cellChild?: boolean;
}
interface TagsEvents {
    /**
     * 点击标签触发
     * @param {string|number} index 传递的index参数值
     */
    ["onClick"]?: (index: string | number) => any;
    /**
     * closable为true时，点击标签关闭按钮触发
     * @param {string|number} index 传递的index参数值
     */
    ["onClose"]?: (index: string | number) => any;
}
interface _Tags extends BaseComponent<TagsProps & TagsEvents> {
}

declare global {
    namespace UniHelper {
        type UvTagsProps = TagsProps;
        type UvTagsEvents = TagsEvents;
        type UvTags = _Tags;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvTags: _Tags;
    }
}

type TextMode = "text" | "price" | "phone" | "name" | "date" | "link";
type TextDecoration = "none" | "underline" | "line-through";
type TextAlign = "left" | "center" | "right";
type TextWordWrap = "normal" | "break-word" | "anywhere";
interface TextProps {
    /**
     * 显示的值
     * @default ""
     */
    text?: string | number;
    /**
     * 主题颜色
     * @default ""
     */
    type?: ColorType;
    /**
     * 是否显示
     * @default false
     */
    show?: boolean;
    /**
     * 前置图标
     * @default ""
     */
    prefixIcon?: string;
    /**
     * 后置图标
     * @default ""
     */
    suffixIcon?: string;
    /**
     * 文本处理的匹配模式
     * @default ""
     */
    mode?: TextMode;
    /**
     * mode=link下，配置的链接
     * @default ""
     */
    href?: string;
    /**
     * 格式化规则
     * @default ""
     */
    format?: string | ((...args: any) => any);
    /**
     * mode=phone时，点击文本是否拨打电
     * @default false
     */
    call?: boolean;
    /**
     * 小程序的打开方式
     * @default ""
     */
    openType?: ButtonOpenType;
    /**
     * 是否粗体，默认normal
     * @default false
     */
    bold?: boolean;
    /**
     * 是否块状
     * @default false
     */
    block?: boolean;
    /**
     * 文本显示的行数，如果设置，超出此行数，将会显示省略号
     * @default ""
     */
    lines?: string | number;
    /**
     * 文本颜色
     * @default "#303133"
     */
    color?: string;
    /**
     * 字体大小
     * @default 15
     */
    size?: string | number;
    /**
     * 图标的样式
     * @default "15px"
     */
    iconStyle?: Record<string, any> | string;
    /**
     * 文字装饰，下划线，中划线等
     * @default "none"
     */
    decoration?: TextDecoration;
    /**
     * 外边距，对象、字符串，数值形式均可
     * @default ""
     */
    margin?: string | number | Record<string, any>;
    /**
     * 文本行高
     * @default ""
     */
    lineHeight?: string | number;
    /**
     * 文本对齐方式
     * @default "left"
     */
    align?: TextAlign;
    /**
     * 文字换行
     * @default "normal"
     */
    wordWrap?: TextWordWrap;
    /**
     * 自定义样式，eg：:custom-style="{color:'red',width:'20px'}"
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface TextEvents {
    /**
     * 点击触发事件
     */
    ["onClick"]?: () => any;
}
interface _Text extends BaseComponent<TextProps & TextEvents> {
}

declare global {
    namespace UniHelper {
        type UvTextProps = TextProps;
        type UvTextEvents = TextEvents;
        type UvText = _Text;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvText: _Text;
    }
}

type TextareaBorder = "surround" | "bottom" | "none";
interface TextareaProps {
    /**
     * 输入框的内容
     * @default ""
     */
    value?: string | number;
    /**
     * 输入框为空时占位符
     * @default ""
     */
    placeholder?: string | number;
    /**
     * 输入框高度
     * @default 70
     */
    height?: string | number;
    /**
     * 设置键盘右下角按钮的文字，仅微信小程序，App-vue和H5有效
     * @default "return"
     */
    confirmType?: InputConfirmType | "return";
    /**
     * 点击键盘右下角按钮时是否保持键盘不收起
     * @default false
     */
    confirmHold?: boolean;
    /**
     * 是否禁用
     * @default false
     */
    disabled?: boolean;
    /**
     * 是否显示统计字数
     * @default false
     */
    count?: boolean;
    /**
     * 是否自动获取焦点，nvue不支持，H5取决于浏览器的实现
     * @default false
     */
    focus?: boolean;
    /**
     * 是否自动增加高度
     * @default false
     */
    autoHeight?: boolean;
    /**
     * 是否忽略组件内对文本合成系统事件的处理。为 false 时将触发 compositionstart、compositionend、compositionupdate 事件，且在文本合成期间会触发 input 事件
     * @default true
     */
    ignoreCompositionEvent?: boolean;
    /**
     * 如果textarea是在一个position:fixed的区域，需要显示指定属性fixed为true
     * @default false
     */
    fixed?: boolean;
    /**
     * 指定光标与键盘的距离
     * @default 0
     */
    cursorSpacing?: number;
    /**
     * 指定focus时的光标位置
     * @default ""
     */
    cursor?: string | number;
    /**
     * 是否显示键盘上方带有”完成“按钮那一栏，
     * @default true
     */
    showConfirmBar?: boolean;
    /**
     * 光标起始位置，自动聚焦时有效，需与selection-end搭配使用
     * @default -1
     */
    selectionStart?: number;
    /**
     * 光标结束位置，自动聚焦时有效，需与selection-start搭配使用
     * @default -1
     */
    selectionEnd?: number;
    /**
     * 键盘弹起时，是否自动上推页面
     * @default true
     */
    adjustPosition?: boolean;
    /**
     * 是否去掉 iOS 下的默认内边距，只微信小程序有效
     * @default false
     */
    disableDefaultPadding?: boolean;
    /**
     * focus时，点击页面的时候不收起键盘，只微信小程序有效
     * @default false
     */
    holdKeyboard?: boolean;
    /**
     * 最大输入长度，设置为 -1 的时候不限制最大长度，设置 -1 则设置的 count 失效。（注意：maxlength都是小写）
     * @default 140
     */
    maxlength?: string | number;
    /**
     * 边框类型
     * @default "surround"
     */
    border?: TextareaBorder;
    /**
     * 指定placeholder的样式类，注意页面或组件的style中写了scoped时，需要在类名前写/deep/
     * @default "textarea-placeholder"
     */
    placeholderClass?: string;
    /**
     * 指定placeholder的样式，字符串/对象形式，如"color: red;"
     * @default "color: #c0c4cc"
     */
    placeholderStyle?: string | Record<string, any>;
    /**
     * 输入过滤或格式化函数(如需兼容微信小程序，则只能通过setFormatter方法)
     * @default null
     */
    formatter?: (value: any) => any;
    /**
     * 自定义文本样式
     * @default ""
     */
    textStyle?: Record<string, any>;
    /**
     * 自定义统计数字的样式
     * @default ""
     */
    countStyle?: Record<string, any>;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface TextareaEvents {
    /**
     * 输入框聚焦时触发
     */
    ["onFocus"]?: (...args: any[]) => any;
    /**
     * 输入框失去焦点时触发
     */
    ["onBlur"]?: (...args: any[]) => any;
    /**
     * 输入框行数变化时调用
     */
    ["onLinechange"]?: (...args: any[]) => any;
    /**
     * 当键盘输入时，触发 input 事件
     */
    ["onInput"]?: (...args: any[]) => any;
    /**
     * 点击完成时， 触发 confirm 事件
     */
    ["onConfirm"]?: (...args: any[]) => any;
    /**
     * 键盘高度发生变化的时候触发此事件
     */
    ["onKeyboardheightchange"]?: (...args: any[]) => any;
}
interface _Textarea extends BaseComponent<TextareaProps & TextareaEvents> {
}
interface TextareaInstance {
    /**
     * 为兼容微信小程序而暴露的内部方法
     */
    setFormatter: (formatter: TextareaProps["formatter"]) => any;
}

declare global {
    namespace UniHelper {
        type UvTextareaProps = TextareaProps;
        type UvTextareaEvents = TextareaEvents;
        type UvTextarea = _Textarea;
        type UvTextareaInstance = TextareaInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvTextarea: _Textarea;
    }
}

type ToastPosition = "top" | "center" | "bottom";
type ToastType = "default" | "error" | "success" | "loading";
interface ToastProps {
    /**
     * 是否加载中
     * @default false
     */
    loading?: boolean;
    /**
     * 展示时的层级
     * @default 10090
     */
    zIndex?: string | number;
    /**
     * 是否显示透明遮罩，防止点击穿透
     * @default true
     */
    overlay?: boolean;
    /**
     * 显示的文本
     * @default ""
     */
    message?: string | number;
    /**
     * 图标，或者绝对路径的图片
     * @default ""
     */
    icon?: string;
    /**
     * toast出现的位置
     */
    position?: ToastPosition;
    /**
     * 主题类型
     * @default ""
     */
    type?: ToastType;
    /**
     * 跳转的参数
     */
    params?: Record<string, any>;
    /**
     * 展示时间，单位ms
     * @default 2000
     */
    duration?: string | number;
    /**
     * 执行完后的回调函数
     * @default null
     */
    complete?: () => any;
}
interface _Toast extends BaseComponent<ToastProps> {
}
interface ToastInstance {
    /**
     * 显示toast，如需一进入页面就显示toast，请在onReady生命周期调用
     */
    show: (...args: any[]) => any;
    /**
     * 隐藏toast
     */
    hide: () => any;
}

declare global {
    namespace UniHelper {
        type UvToastProps = ToastProps;
        type UvToast = _Toast;
        type UvToastInstance = ToastInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvToast: _Toast;
    }
}

type TooltipDirection = "top" | "bottom";
interface TooltipProps {
    /**
     * 需要显示的提示文字
     * @default ""
     */
    text?: string | number;
    /**
     * 点击复制按钮时，复制的文本，为空则使用text值
     * @default ""
     */
    copyText?: string | number;
    /**
     * 文本大小
     * @default 14
     */
    size?: string | number;
    /**
     * 字体颜色
     * @default "#606266"
     */
    color?: string;
    /**
     * 弹出提示框时，文本的背景色
     * @default "transparent"
     */
    bgColor?: string;
    /**
     * 弹出提示的方向
     * @default "top"
     */
    direction?: TooltipDirection;
    /**
     * 弹出提示的z-index，nvue无效
     * @default 10071
     */
    zIndex?: string | number;
    /**
     * 是否显示复制按钮
     * @default true
     */
    showCopy?: boolean;
    /**
     * 扩展的按钮组
     */
    buttons?: string[];
    /**
     * 是否显示透明遮罩以防止触摸穿透
     * @default true
     */
    overlay?: boolean;
    /**
     * 是否显示复制成功或者失败的toast
     * @default true
     */
    showToast?: boolean;
}
interface TooltipEvents {
    /**
     * 点击触发事件
     * @param {number} index 被点击按钮的索引
     */
    ["onClick"]?: (index: number) => any;
}
interface _Tooltip extends BaseComponent<TooltipProps & TooltipEvents> {
}

declare global {
    namespace UniHelper {
        type UvTooltipProps = TooltipProps;
        type UvTooltipEvents = TooltipEvents;
        type UvTooltip = _Tooltip;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvTooltip: _Tooltip;
    }
}

type Mode = "fade" | "slide-top" | "slide-bottom" | "slide-left" | "slide-right" | "zoom-in" | "zoom-out";
type TimingFunction = "linear" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "step-start" | "step-end";
interface TransitionProps {
    /**
     * 控制组件显示或关闭
     * @default false
     */
    show?: boolean;
    /**
     * 内置过渡动画类型，同一种类型相反的过渡动画如（slide-top、slide-bottom）同时使用时，只有最后一个生效
     * @default "fade"
     */
    mode?: Mode | Mode[];
    /**
     * 动画的执行时间，单位`ms`
     * @default 300
     */
    duration?: string | number;
    /**
     * 使用的动画过渡函数
     * @default "ease-out"
     */
    timingFunction?: TimingFunction;
    /**
     * 自定义类名
     * @default ""
     */
    customClass?: string;
    /**
     * 是否属于cell节点下。nvue模式下的该组件在cell或uv-list等组件下使用，该值最好是设置成true，避免回收后不显示的BUG。
     * @default false
     */
    cellChild?: boolean;
    /**
     * 自定义样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface TransitionEvents {
    /**
     * 点击组件触发
     */
    ["onClick"]?: () => any;
    /**
     * 过渡动画结束时触发，回调参数 `e = {detail:true | false}`
     */
    ["onChange"]?: (...args: any[]) => any;
}
interface _Transition extends BaseComponent<TransitionProps & TransitionEvents> {
}
interface Config {
    /**
     * 动画持续时间，单位ms
     * @default 400
     */
    duration?: number;
    /**
     * 使用的动画过渡函数
     * @default "linear"
     */
    timingFunction?: TimingFunction;
    /**
     * 动画延迟时间，单位ms
     * @default 0
     */
    delay?: number;
    /**
     * 动画执行是否影响布局，仅 nvue 支持
     * @default false
     */
    needLayout?: boolean;
    /**
     * 设置 transform-origin
     * @default "center center"
     */
    transformOrigin?: string;
}
interface Type {
    /**
     * 透明度，参数范围 0~1
     * @default ""
     */
    opacity?: number;
    /**
     * 颜色值
     * @default ""
     */
    backgroundColor?: string;
    /**
     * 长度值，如果传入 Number 则默认使用 px，可传入其他自定义单位的长度值
     * @default ""
     */
    width?: string | number;
    /**
     * 长度值，如果传入 Number 则默认使用 px，可传入其他自定义单位的长度值
     * @default ""
     */
    height?: string | number;
    /**
     * 长度值，如果传入 Number 则默认使用 px，可传入其他自定义单位的长度值，nvue 不支持
     * @default ""
     */
    top?: string | number;
    /**
     * 长度值，如果传入 Number 则默认使用 px，可传入其他自定义单位的长度值，nvue 不支持
     * @default ""
     */
    left?: string | number;
    /**
     * 长度值，如果传入 Number 则默认使用 px，可传入其他自定义单位的长度值，nvue 不支持
     * @default ""
     */
    bottom?: string | number;
    /**
     * 长度值，如果传入 Number 则默认使用 px，可传入其他自定义单位的长度值，nvue 不支持
     * @default ""
     */
    right?: string | number;
    /**
     * deg的范围-180~180，从原点顺时针旋转一个deg角度
     * @default ""
     */
    rotate?: number;
    /**
     * deg的范围-180~180，在X轴旋转一个deg角度
     * @default ""
     */
    rotateX?: number;
    /**
     * deg的范围-180~180，在Y轴旋转一个deg角度
     * @default ""
     */
    rotateY?: number;
    /**
     * deg的范围-180~180，在Z轴旋转一个deg角度，nvue不支持
     * @default ""
     */
    rotateZ?: number;
    /**
     * 同 transform-function rotate3d
     * @default ""
     */
    rotate3d?: number[];
    /**
     * 一个参数时，表示在X轴、Y轴同时缩放sx倍数；两个参数时表示在X轴缩放sx倍数，在Y轴缩放sy倍数
     * @default ""
     */
    scale?: number | number[];
    /**
     * 在X轴缩放sx倍数
     * @default ""
     */
    scaleX?: number;
    /**
     * 在Y轴缩放sy倍数
     * @default ""
     */
    scaleY?: number;
    /**
     * 在Z轴缩放sy倍数，nvue不支持
     * @default ""
     */
    scaleZ?: number;
    /**
     * 在X轴缩放sx倍数，在Y轴缩放sy倍数，在Z轴缩放sz倍数，nvue不支持
     * @default ""
     */
    scale3d?: number[];
    /**
     * 一个参数时，表示在X轴偏移tx，单位px；两个参数时，表示在X轴偏移tx，在Y轴偏移ty，单位px。
     * @default ""
     */
    translate?: string | string[];
    /**
     * 在X轴偏移tx，单位px
     * @default ""
     */
    translateX?: string;
    /**
     * 在Y轴偏移tx，单位px
     * @default ""
     */
    translateY?: string;
    /**
     * 在Z轴偏移tx，单位px，nvue不支持
     * @default ""
     */
    translateZ?: string;
    /**
     * 在X轴偏移tx，在Y轴偏移ty，在Z轴偏移tz，单位px，nvue不支持
     * @default ""
     */
    translate3d?: string[];
}
interface TransitionInstance {
    /**
     * 手动初始化配置
     */
    init: (config: Config) => any;
    /**
     * 动画队列
     */
    step: (type: Type, config?: Config) => any;
    /**
     * 执行动画
     */
    run: (callback?: () => any) => any;
}

declare global {
    namespace UniHelper {
        type UvTransitionProps = TransitionProps;
        type UvTransitionEvents = TransitionEvents;
        type UvTransition = _Transition;
        type UvTransitionInstance = TransitionInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvTransition: _Transition;
    }
}

type UploadAccept = "all" | "media" | "image" | "file" | "video";
type UploadCapture = "album" | "camera";
type UploadCamera = "front" | "back";
type UploadSizeType = "original" | "compressed";
interface FileListOption {
    /**
     * 上传状态
     */
    status?: "uploading" | "success" | "failed";
    /**
     * 提示文本
     */
    message?: string;
    /**
     * 图片地址
     */
    url: string;
}
interface UploadProps {
    /**
     * 显示已上传的文件列表
     * @default ""
     */
    fileList?: FileListOption[];
    /**
     * 接受的文件类型，file只支持H5（只有微信小程序才支持把accept配置为all、media）
     * @default "image"
     */
    accept?: UploadAccept;
    /**
     * 图片或视频拾取模式，当accept为image类型时设置capture可选额外camera可以直接调起摄像头
     * @default "['album', 'camera']""
     */
    capture?: UploadCapture | UploadCapture[];
    /**
     * 当accept为video时生效，是否压缩视频，默认为true
     * @default true
     */
    compressed?: boolean;
    /**
     * 当accept为video时生效，可选值为back或front
     * @default "back"
     */
    camera?: UploadCamera;
    /**
     * 当accept为video时生效，拍摄视频最长拍摄时间，单位秒
     * @default 60
     */
    maxDuration?: number;
    /**
     * 上传区域的图标，只能内置图标
     * @default "camera-fill"
     */
    uploadIcon?: string;
    /**
     * 上传区域的图标的颜色
     * @default "#D3D4D6"
     */
    uploadIconColor?: string;
    /**
     * 是否启用(显示/隐藏)组件
     * @default false
     */
    useBeforeRead?: boolean;
    /**
     * 是否开启图片预览功能
     * @default true
     */
    previewFullImage?: boolean;
    /**
     * 是否开启视频预览功能
     * @default true
     */
    previewFullVideo?: boolean;
    /**
     * 最大选择图片的数量
     * @default 52
     */
    maxCount?: string | number;
    /**
     * 是否禁用
     * @default false
     */
    disabled?: boolean;
    /**
     * 预览上传的图片时的裁剪模式，和image组件mode属性一致
     * @default "aspectFill"
     */
    imageMode?: ImageMode;
    /**
     * 标识符，可以在回调函数的第二项参数中获取
     * @default "file"
     */
    name?: string;
    /**
     * original 原图，compressed 压缩图，默认二者都有，H5无效
     * @default "['original', 'compressed']"
     */
    sizeType?: UploadSizeType[];
    /**
     * 是否开启图片多选，部分安卓机型不支持
     * @default false
     */
    multiple?: boolean;
    /**
     * 是否显示删除按钮
     * @default true
     */
    deletable?: boolean;
    /**
     * 选择单个文件的最大大小，单位B(byte)，默认不限制
     * @default Number.MAX_VALUE
     */
    maxSize?: string | number;
    /**
     * 上传区域的提示文字
     * @default ""
     */
    uploadText?: string;
    /**
     * 内部预览图片区域和选择图片按钮的区域宽度，单位rpx，不能是百分比，或者auto
     * @default 80
     */
    width?: string | number;
    /**
     * 内部预览图片区域和选择图片按钮的区域高度，单位rpx，不能是百分比，或者auto
     * @default 80
     */
    height?: string | number;
    /**
     * 是否在上传完成后展示预览图
     * @default true
     */
    previewImage?: boolean;
    /**
     * 自定义外部样式
     * @default ""
     */
    customStyle?: string | Record<string, any>;
}
interface UploadEvents {
    /**
     * 读取后的处理函数
     */
    ["onAfterRead"]?: (file: any, lists: any[], name: any) => any;
    /**
     * 读取前的处理函数
     */
    ["onBeforeRead"]?: (file: any, lists: any[], name: any) => any;
    /**
     * 图片大小超出最大允许大小
     */
    ["onOversize"]?: (file: any, lists: any[], name: any) => any;
    /**
     * 全屏预览图片时触发
     */
    ["onClickPreview"]?: (...args: any[]) => any;
    /**
     * 删除图片
     */
    ["onDelete"]?: (...args: any[]) => any[];
}
interface UploadSlots {
    /**
     * 自定义上传样式
     */
    ["default"]?: () => any;
}
interface _Upload extends BaseComponent<UploadProps & UploadEvents, UploadSlots> {
}
interface UploadInstance {
    /**
     * 读取后的处理函数
     */
    afterRead: (...args: any[]) => any;
    /**
     * 读取前的处理函数
     */
    beforeRead: (...args: any[]) => any;
}

declare global {
    namespace UniHelper {
        type UvUploadProps = UploadProps;
        type UvUploadEvents = UploadEvents;
        type UvUpload = _Upload;
        type UvUploadInstance = UploadInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvUpload: _Upload;
    }
}

interface VtabsItemProps {
    /**
     * 内容区索引值，`chain=true`开启时必传
     * @default 0
     */
    index?: string | number;
}
interface _VtabsItem extends BaseComponent<VtabsItemProps> {
}

declare global {
    namespace UniHelper {
        type UvVtabsItemProps = VtabsItemProps;
        type UvVtabsItem = _VtabsItem;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvVtabsItem: _VtabsItem;
    }
}

interface VtabsProps {
    /**
     * 选项数组，元素为对象，如[{name:'uv-ui简介'}]。元素对象中可设置徽标显示，如[{name:'更新日志', badge: {isDot: true}}]
     * @default []
     */
    list?: any[];
    /**
     * 从list元素对象中读取的键名
     * @default "name"
     */
    keyName?: string;
    /**
     * 当前选中项，从0开始
     * @default 0
     */
    current?: number;
    /**
     * 头部内容的高度，头部有内容必传，否则会有联动误差
     * @version `1.0.4`
     * @default 0
     */
    hdHeight?: string | number;
    /**
     * 是否开启联动，开启后右边区域可以滑动查看内容。注意：`chain=true`时`VtabsItem`的`index`属性必传
     * @default true
     */
    chain?: boolean;
    /**
     * 整个列表的高度，默认auto或空则为屏幕高度
     * @default sys().windowHeight
     */
    height?: string | number;
    /**
     * 左边选项区域的宽度
     * @default "180rpx"
     */
    barWidth?: string | number;
    /**
     * 左边选项区域是否允许滚动
     * @default true
     */
    barScrollable?: boolean;
    /**
     * 左边选项区域的背景颜色
     * @default "$uv-bg-color"
     */
    barBgColor?: string;
    /**
     * 左边选项区域的自定义样式
     * @default ""
     */
    barStyle?: Record<string, any>;
    /**
     * 左边选项区域「每个」选项的自定义样式
     * @default ""
     */
    barItemStyle?: Record<string, any>;
    /**
     * 左边选项区域「选中」选项的自定义样式
     * @default ""
     */
    barItemActiveStyle?: Record<string, any>;
    /**
     * 左边选项区域「选中选项竖线条」的自定义样式，如设置竖条颜色，需设置背景色：`:bar-item-active-line-style="{background: '#2878FF'}"`
     * @default ""
     */
    barItemActiveLineStyle?: Record<string, any>;
    /**
     * 左边选项区域选中选项徽标的自定义样式，**主要用于调整徽标位置**
     * @default ""
     */
    barItemBadgeStyle?: Record<string, any>;
    /**
     * 右边区域自定义样式
     * @default ""
     */
    contentStyle?: Record<string, any>;
}
interface VtabsEvents {
    /**
     * 选择改变时触发
     * @param {number} index 选项索引值
     */
    ["onChange"]?: (index: number) => any;
    /**
     * 内容滚动到底部触发
     * @version `1.0.4`
     * @param {number} index 选项索引值
     */
    ["onScrolltolower"]?: (index: number) => any;
}
interface _Vtabs extends BaseComponent<VtabsProps & VtabsEvents> {
}

declare global {
    namespace UniHelper {
        type UvVtabsProps = VtabsProps;
        type UvVtabsEvents = VtabsEvents;
        type UvVtabs = _Vtabs;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvVtabs: _Vtabs;
    }
}

interface WaterfallProps {
    /**
     * 瀑布流数据，（vue生效）
     * @default []
     */
    value?: any[];
    /**
     * 数据的id值，根据id值对数据可执行删除操作。如数据为：{id: 1, name: 'uv-ui'}，那么该值设置为id，（vue生效）
     * @default "id"
     */
    idKey?: string;
    /**
     * 每次插入数据的事件间隔，间隔越长能保证两列高度相近，但是用户体验不好，单位ms，（vue生效）
     * @default 200
     */
    addTime?: number;
    /**
     * 瀑布流的列数，默认2，最高为5
     * @default 2
     */
    columnCount?: string | number;
    /**
     * 列与列的间隙，默认单位px
     * @default 20
     */
    columnGap?: string | number;
    /**
     * 左边和列表的间隙，默认单位px
     * @default 0
     */
    leftGap?: string | number;
    /**
     * 右边和列表的间隙，默认单位px
     * @default 0
     */
    rightGap?: string | number;
    /**
     * 是否显示滚动条，（nvue生效）
     * @default false
     */
    showScrollbar?: boolean;
    /**
     * 列宽，单位px，（nvue生效）
     * @default "auto"
     */
    columnWidth?: string | number;
    /**
     * 瀑布流的宽度，（nvue生效）
     * @default 屏幕宽度
     */
    width?: string;
    /**
     * 瀑布流的高度，（nvue生效）
     * @default 屏幕高度
     */
    height: string;
}
interface WaterfallEvents {
    /**
     * 【必须使用】 处理数据时触发，为了兼容某些端不支持插槽回传参数的情况（vue生效）
     */
    ["onChangeList"]?: (...args: any[]) => any;
    /**
     * 瀑布流加载完成触发事件，（vue生效）
     */
    ["onFinish"]?: () => any;
    /**
     * 清空数据列表触发事件，（vue生效）
     */
    ["onClear"]?: () => any;
    /**
     * 删除列表中某条数据触发事件，（vue生效）
     */
    ["onRemove"]?: (id: any) => any;
    /**
     * 滚动到底部触发事件，（nvue生效）
     */
    ["onScrolltolower"]?: () => any;
}
interface WaterfallSlots {
    /**
     * 瀑布流内容
     */
    ["default"]?: () => any;
}
interface _Waterfall extends BaseComponent<WaterfallProps & WaterfallEvents, WaterfallSlots> {
}
interface WaterfallInstance {
    /**
     * 瀑布流加载完毕事件，（vue生效）
     */
    finish: () => any;
    /**
     * 清除指定的某一条数据，根据id来实现，删除后v-model绑定的数据会自动变化，（vue生效）
     */
    remove: (id: any) => any;
    /**
     * 清除瀑布流数据，（vue生效）
     */
    clear: () => any;
}

declare global {
    namespace UniHelper {
        type UvWaterfallProps = WaterfallProps;
        type UvWaterfallEvents = WaterfallEvents;
        type UvWaterfall = _Waterfall;
        type UvWaterfallInstance = WaterfallInstance;
    }
}
declare module "vue" {
    interface GlobalComponents {
        UvWaterfall: _Waterfall;
    }
}

export type { _ActionSheet as UvActionSheet, Action as UvActionSheetActionItem, ActionSheetEvents as UvActionSheetEvents, ActionSheetInstance as UvActionSheetInstance, ActionSheetProps as UvActionSheetProps, _Album as UvAlbum, AlbumEvents as UvAlbumEvents, AlbumProps as UvAlbumProps, _Alert as UvAlert, AlertEvents as UvAlertEvents, AlertProps as UvAlertProps, _Avatar as UvAvatar, AvatarEvents as UvAvatarEvents, _AvatarGroup as UvAvatarGroup, AvatarGroupEvents as UvAvatarGroupEvents, AvatarGroupProps as UvAvatarGroupProps, AvatarProps as UvAvatarProps, _BackTop as UvBackTop, BackTopInstance as UvBackTopInstance, BackTopProps as UvBackTopProps, _Badge as UvBadge, BadgeProps as UvBadgeProps, _Button as UvButton, ButtonEvents as UvButtonEvents, ButtonOpenType as UvButtonOpenType, ButtonProps as UvButtonProps, _Calendar as UvCalendar, CalendarEvents as UvCalendarEvents, CalendarInstance as UvCalendarInstance, CalendarProps as UvCalendarProps, _Calendars as UvCalendars, CalendarsEvents as UvCalendarsEvents, CalendarsInstance as UvCalendarsInstance, CalendarsMode as UvCalendarsMode, CalendarsProps as UvCalendarsProps, SelectedItem as UvCalendarsSelectedItem, _Cell as UvCell, CellEvents as UvCellEvents, _CellGroup as UvCellGroup, CellGroupProps as UvCellGroupProps, CellProps as UvCellProps, _Checkbox as UvCheckbox, CheckboxEvents as UvCheckboxEvents, _CheckGroup as UvCheckboxGroup, CheckGroupEvents as UvCheckboxGroupEvents, CheckboxGroupProps as UvCheckboxGroupProps, CheckboxProps as UvCheckboxProps, _Code as UvCode, CodeEvents as UvCodeEvents, _CodeInput as UvCodeInput, CodeInputEvents as UvCodeInputEvents, CodeInputProps as UvCodeInputProps, CodeInstance as UvCodeInstance, CodeProps as UvCodeProps, _Col as UvCol, ColEvents as UvColEvents, ColProps as UvColProps, _Collapse as UvCollapse, CollapseEvents as UvCollapseEvents, CollapseInstance as UvCollapseInstance, _CollapseItem as UvCollapseItem, CollapseItemProps as UvCollapseItemProps, CollapseProps as UvCollapseProps, _CountDown as UvCountDown, CountDownEvents as UvCountDownEvents, CountDownInstance as UvCountDownInstance, CountDownProps as UvCountDownProps, _CountTo as UvCountTo, CountToEvents as UvCountToEvents, CountToInstance as UvCountToInstance, CountToProps as UvCountToProps, _DatetimePicker as UvDatetimePicker, DatetimePickerEvents as UvDatetimePickerEvents, DatetimePickerInstance as UvDatetimePickerInstance, DatetimePickerProps as UvDatetimePickerProps, _Divider as UvDivider, DividerEvents as UvDividerEvents, DividerProps as UvDividerProps, _DropdownPopup as UvDropDownPopup, DropdownPopupEvents as UvDropDownPopupEvents, DropdownPopupInstance as UvDropDownPopupInstance, DropDownPopupProps as UvDropDownPopupProps, DropDownProps as UvDropDownProps, _Dropdown as UvDropdown, DropdownEvents as UvDropdownEvents, _DropdownInstance as UvDropdownInstance, _DropdownItem as UvDropdownItem, DropDownItemProps as UvDropdownItemProps, _Empty as UvEmpty, EmptyMode as UvEmptyMode, EmptyProps as UvEmptyProps, _Form as UvForm, FormInstance as UvFormInstance, _FormItem as UvFormItem, FormItemEvents as UvFormItemEvents, FormItemProps as UvFormItemProps, RuleItem as UvFormItemRule, FormProps as UvFormProps, FormRules as UvFormRules, _Gap as UvGap, GapProps as UvGapProps, _Grid as UvGrid, GridEvents as UvGridEvents, _GridItem as UvGridItem, GridItemEvents as UvGridItemEvents, GridItemProps as UvGridItemProps, GridProps as UvGridProps, _Icon as UvIcon, IconEvents as UvIconEvents, IconProps as UvIconProps, _Image as UvImage, ImageEvents as UvImageEvents, ImageProps as UvImageProps, _IndexList as UvIndexList, _IndexListAnchor as UvIndexListAnchor, IndexListAnchorProps as UvIndexListAnchorProps, IndexListEvents as UvIndexListEvents, _IndexListItem as UvIndexListItem, IndexListItemProps as UvIndexListItemProps, IndexListProps as UvIndexListProps, _Input as UvInput, InputConfirmType as UvInputConfirmType, InputEvents as UvInputEvents, InputInstance as UvInputInstance, InputProps as UvInputProps, _Keyboard as UvKeyboard, KeyboardEvents as UvKeyboardEvents, KeyboardInstance as UvKeyboardInstance, KeyboardProps as UvKeyboardProps, _Line as UvLine, _LineProgress as UvLineProgress, LineProgressProps as UvLineProgressProps, LineProps as UvLineProps, _Link as UvLink, LinkEvents as UvLinkEvents, LinkProps as UvLinkProps, _List as UvList, _ListItem as UvListItem, ListItemEvents as UvListItemEvents, ListItemProps as UvListItemProps, ListProps as UvListProps, _LoadMore as UvLoadMore, LoadMoreEvents as UvLoadMoreEvents, LoadMoreProps as UvLoadMoreProps, _LoadingIcon as UvLoadingIcon, LoadingIconProps as UvLoadingIconProps, _LoadingPage as UvLoadingPage, LoadingPageProps as UvLoadingPageProps, _Modal as UvModal, ModalEvents as UvModalEvents, ModalInstance as UvModalInstance, ModalProps as UvModalProps, _Navbar as UvNavbar, NavbarEvents as UvNavbarEvents, NavbarProps as UvNavbarProps, _NoNetwork as UvNoNetwork, NoNetworkEvents as UvNoNetworkEvents, NoNetworkProps as UvNoNetworkProps, _NoticeBar as UvNoticeBar, NoticeBarEvents as UvNoticeBarEvents, NoticeBarProps as UvNoticeBarProps, _Notify as UvNotify, NotifyInstance as UvNotifyInstance, NotifyProps as UvNotifyProps, _NumberBox as UvNumberBox, NumberBoxEvents as UvNumberBoxEvents, NumberBoxProps as UvNumberBoxProps, _Overlay as UvOverlay, OverlayEvents as UvOverlayEvents, OverlayProps as UvOverlayProps, _Parse as UvParse, ParseEvents as UvParseEvents, ParseProps as UvParseProps, _PickColor as UvPickColor, PickColorEvents as UvPickColorEvents, PickColorInstance as UvPickColorInstance, PickColorProps as UvPickColorProps, _Picker as UvPicker, PickerEvents as UvPickerEvents, PickerInstance as UvPickerInstance, PickerProps as UvPickerProps, _Popup as UvPopup, PopupEvents as UvPopupEvents, PopupInstance as UvPopupInstance, PopupProps as UvPopupProps, _Qrcode as UvQrcode, QrcodeEvents as UvQrcodeEvents, QrcodeInstance as UvQrcodeInstance, QrcodeProps as UvQrcodeProps, _Radio as UvRadio, RadioEvents as UvRadioEvents, _RadioGroup as UvRadioGroup, RadioGroupEvents as UvRadioGroupEvents, RadioGroupProps as UvRadioGroupProps, RadioProps as UvRadioProps, _Rate as UvRate, RateEvents as UvRateEvents, RateProps as UvRateProps, _ReadMore as UvReadMore, ReadMoreEvents as UvReadMoreEvents, ReadMoreInstance as UvReadMoreInstance, ReadMoreProps as UvReadMoreProps, _Row as UvRow, RowEvents as UvRowEvents, RowJustify as UvRowJustify, RowProps as UvRowProps, _SafeBottom as UvSafeBottom, SafeBottomProps as UvSafeBottomProps, _ScrollList as UvScrollList, ScrollListEvents as UvScrollListEvents, ScrollListProps as UvScrollListProps, _Search as UvSearch, SearchEvents as UvSearchEvents, SearchProps as UvSearchProps, _Skeleton as UvSkeleton, SkeletonProps as UvSkeletonProps, _Skeletons as UvSkeletons, SkeletonsProps as UvSkeletonsProps, _Slider as UvSlider, SliderEvents as UvSliderEvents, SliderProps as UvSliderProps, _StatusBar as UvStatusBar, StatusBarProps as UvStatusBarProps, StatusBarSlots as UvStatusBarSlots, _Steps as UvSteps, _StepsItem as UvStepsItem, StepsItemProps as UvStepsItemProps, StepsProps as UvStepsProps, _Sticky as UvSticky, StickyProps as UvStickyProps, _Subsection as UvSubsection, SubsectionEvents as UvSubsectionEvents, SubsectionProps as UvSubsectionProps, _SwipeAction as UvSwipeAction, SwipeActionEvents as UvSwipeActionEvents, _SwipeActionItem as UvSwipeActionItem, SwipeActionItemEvents as UvSwipeActionItemEvents, SwipeActionItemProps as UvSwipeActionItemProps, SwipeActionProps as UvSwipeActionProps, _Swiper as UvSwiper, SwiperEvents as UvSwiperEvents, SwiperProps as UvSwiperProps, _Switch as UvSwitch, SwitchEvents as UvSwitchEvents, SwitchProps as UvSwitchProps, _Tabbar as UvTabbar, TabbarEvents as UvTabbarEvents, _TabbarItem as UvTabbarItem, TabbarItemEvents as UvTabbarItemEvents, TabbarItemProps as UvTabbarItemProps, TabbarProps as UvTabbarProps, _Tabs as UvTabs, TabsEvents as UvTabsEvents, TabsProps as UvTabsProps, _Tags as UvTags, TagsEvents as UvTagsEvents, TagsProps as UvTagsProps, _Text as UvText, TextEvents as UvTextEvents, TextProps as UvTextProps, _Textarea as UvTextarea, TextareaEvents as UvTextareaEvents, TextareaInstance as UvTextareaInstance, TextareaProps as UvTextareaProps, _Toast as UvToast, ToastInstance as UvToastInstance, ToastProps as UvToastProps, _Tooltip as UvTooltip, TooltipEvents as UvTooltipEvents, TooltipProps as UvTooltipProps, _Transition as UvTransition, TransitionEvents as UvTransitionEvents, TransitionInstance as UvTransitionInstance, TransitionProps as UvTransitionProps, _Upload as UvUpload, UploadEvents as UvUploadEvents, UploadInstance as UvUploadInstance, UploadProps as UvUploadProps, _Vtabs as UvVtabs, VtabsEvents as UvVtabsEvents, _VtabsItem as UvVtabsItem, VtabsItemProps as UvVtabsItemProps, VtabsProps as UvVtabsProps, _Waterfall as UvWaterfall, WaterfallEvents as UvWaterfallEvents, WaterfallInstance as UvWaterfallInstance, WaterfallProps as UvWaterfallProps };
