import { ComponentClass } from 'react'
import { CommonEventFunction } from '@tarojs/components/types/common'

import CtsComponent from './base'

export interface CtsFloatLayoutProps extends CtsComponent {
  /**
   * 浮动弹层的显示与隐藏
   * @default false
   */
  isOpened: boolean
  /**
   * 指定组件模板，address:省市区(使用CtsAddress组件),salary:工资列表,workmate:工友详情,picker:时间选择,radio:单选,checkbox:多选
   * @description '', 'address', 'salary', 'workmate', 'picker', 'radio', 'checkbox'
   * @type {(''|'address'|'salary'|'workmate'|'picker'|'radio'|'checkbox')}
   */
  mode?: '' | 'address' | 'salary' | 'workmate' | 'picker' | 'radio' | 'checkbox'
  /**
   * 浮动弹层的标题
   */
  title?: string
  /**
   * 是否显示浮动弹层的标题额外信息
   * @default false
   */
  note?: boolean
  /**
   * 数据，数组或对象或其他类型
   */
  data?: any
  /**
   * 默认选中，省市区[数组]一条数据[数组]单选[字符串]或多选[数组]
   */
  dataVal?: any
  /**
   * 取消的内容显示
   */
  cancelText?: string
  /**
   * 是否显示取消按钮
   * @default true
   */
  isCancel?: boolean
  /**
   * 确定的内容显示
   */
  confirmText?: string
  /**
   * 是否显示确定按钮
   * @default true
   */
  isConfirm?: boolean
  /**
   * 额外子元素
   */
  renderContent?: any
  /**
   * 弹层被关闭时事件
   */
  onCancel: CommonEventFunction
  /**
   * 确认浮动弹层事件
   */
  onConfirm?: CommonEventFunction

}

export interface CtsFloatLayoutState {
  /**
   * 当前选择的值，省市区[数组]一条数据[数组]单选[字符串]或多选[数组]
   */
  selectorVal: any
}

declare const CtsFloatLayout: ComponentClass<CtsFloatLayoutProps>

export default CtsFloatLayout