import { Component } from 'vue'

export interface Props {
  
  modelValue: boolean | string | number
  
  disabled?: boolean
  
  loading?: boolean
  
  size?: '' | 'large' | 'default' | 'small'
  
  width?: number | string
  
  inlinePrompt?: boolean
  
  activeIcon?: string | Component
  
  inactiveIcon?: string | Component
  
  activeActionIcon?: string | Component
  
  inactiveActionIcon?: string | Component
  
  activeText?: string
  
  inactiveText?: string
  
  activeValue?: boolean | string | number
  
  inactiveValue?: boolean | string | number
  
  name?: string
  
  validateEvent?: boolean
  
  beforeChange?: boolean | (() => Promise<boolean>)
  
  id?: string
  
  tabindex?: string | number
}
export interface Emits {
  
  (e: 'change', val: boolean | string | number): void
}
export type Exposes = {
  
  $refSwitch
}
