import type { ExtractPropTypes } from 'vue'
export type Action = {
  /**
   * 选项名称
   */
  name: string
  /**
   * 描述信息
   */
  subname: string
  /**
   * 颜色
   */
  color: string
  /**
   * 禁用
   */
  disabled: boolean
  /**
   * 加载中状态
   */
  loading: boolean
}
export type Panel = {
  /**
   * 图片地址
   */
  iconUrl: string
  /**
   * 标题内容
   */
  title: string
}
export declare const actionSheetProps: {
  /**
   * header 头部样式
   * @default ''
   * @type {string}
   */
  customHeaderClass: {
    type: import('vue').PropType<string>
    default: string
  }
  /**
   * 设置菜单显示隐藏
   * @default false
   * @type {boolean}
   */
  modelValue: {
    type: BooleanConstructor
    required: true
    default: boolean
  }
  /**
   * 菜单选项
   * @default []
   * @type {Action[]}
   */
  actions: {
    type: import('vue').PropType<Action[]>
    default: () => never[]
  }
  /**
   * 自定义面板项,可以为字符串数组，也可以为对象数组，如果为二维数组，则为多行展示
   * @default []
   * @type {Array<Panel | Panel[]>}
   */
  panels: {
    type: import('vue').PropType<(Panel | Panel[])[]>
    default: () => never[]
  }
  /**
   * 标题
   * @type {string}
   */
  title: StringConstructor
  /**
   * 取消按钮文案
   * @type {string}
   */
  cancelText: StringConstructor
  /**
   * 点击选项后是否关闭菜单
   * @default true
   * @type {boolean}
   */
  closeOnClickAction: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 点击遮罩是否关闭
   * @default true
   * @type {boolean}
   */
  closeOnClickModal: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 弹框动画持续时间
   * @default 200
   * @type {number}
   */
  duration: {
    type: NumberConstructor
    default: number
  }
  /**
   * 菜单层级
   * @default 10
   * @type {number}
   */
  zIndex: {
    type: NumberConstructor
    default: number
  }
  /**
   * 弹层内容懒渲染，触发展示时才渲染内容
   * @default true
   * @type {boolean}
   */
  lazyRender: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 弹出面板是否设置底部安全距离（iphone X 类型的机型）
   * @default true
   * @type {boolean}
   */
  safeAreaInsetBottom: {
    type: BooleanConstructor
    default: boolean
  }
  customStyle: {
    type: import('vue').PropType<string>
    default: string
  }
  customClass: {
    type: import('vue').PropType<string>
    default: string
  }
}
export type ActionSheetProps = ExtractPropTypes<typeof actionSheetProps>
