import { type ExtractPropTypes, type InjectionKey, type PropType } from 'vue'
import type { CheckShape } from '../wd-checkbox/types'
export type RequiredModelValue = {
  modelValue: Array<string | number | boolean>
}
export type checkboxGroupProvide = {
  props: Partial<Omit<CheckboxGroupProps, 'modelValue'>> & RequiredModelValue
  changeSelectState: (value: string | number | boolean) => void
}
export declare const CHECKBOX_GROUP_KEY: InjectionKey<checkboxGroupProvide>
export declare const checkboxGroupProps: {
  /**
   * 绑定值
   */
  modelValue: {
    type: PropType<Array<string | number | boolean>>
    default: () => never[]
  }
  /**
   * 表单模式
   */
  cell: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 单选框形状，可选值：circle / square / button
   */
  shape: {
    type: PropType<CheckShape>
    default: CheckShape
  }
  /**
   * 选中的颜色
   */
  checkedColor: StringConstructor
  /**
   * 禁用
   */
  disabled: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 最小选中的数量
   */
  min: {
    type: NumberConstructor
    default: number
  }
  /**
   * 最大选中的数量，0 为无限数量，默认为 0
   */
  max: {
    type: NumberConstructor
    default: number
  }
  /**
   * 同行展示
   */
  inline: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 设置大小，可选值：large
   */
  size: StringConstructor
  customStyle: {
    type: PropType<string>
    default: string
  }
  customClass: {
    type: PropType<string>
    default: string
  }
}
export type CheckboxGroupProps = ExtractPropTypes<typeof checkboxGroupProps>
