import type { StyleValue } from 'vue'

export interface menuListType {
  key: string | number
  name: string
  hidden?: boolean | Function
  disabled?: boolean | Function
}

export interface DasTabsoptionsType {
  
  key?: string | number
  
  tab?: string
  
  disabled?: boolean | Function
  
  forceRender?: boolean
  
  tabSlot?: string
  
  closeIconSlot?: string
  
  contentSlot?: string
  [propName: string]: any
}

export interface Props {
  
  type?: 'line' | 'card' | 'editable-card'
  
  tabsStyle?: StyleValue
  
  size?: 'large' | 'medium' | 'small'
  
  contextmenu?: boolean
  
  width?: string | number
  
  options: Array<DasTabsoptionsType>
  
  constomMenuList?: Array<menuListType>
  defualtProps?: Record<any, any>
}

export interface Emits {
  
  (e: 'menuClick', menu: menuListType, item: any): void
}
export interface Slots {
  
  icon: {}
}
