import { type ExtractPropTypes, type InjectionKey } from 'vue'
export type TabsProvide = {
  state: {
    activeIndex: number
  }
}
export declare const TABS_KEY: InjectionKey<TabsProvide>
export type TagsMode = 'semicircle' | 'default'
export declare const tabsProps: {
  /**
   * 绑定值
   */
  modelValue: {
    type: (NumberConstructor | StringConstructor)[]
    default: number
  }
  /**
   * 标签数超过阈值可滑动
   */
  slidableNum: {
    type: NumberConstructor
    default: number
  }
  /**
   * 标签数超过阈值显示导航地图
   */
  mapNum: {
    type: NumberConstructor
    default: number
  }
  /**
   * 粘性布局
   */
  sticky: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 粘性布局吸顶位置
   */
  offsetTop: {
    type: NumberConstructor
    default: number
  }
  /**
   * 开启手势滑动
   */
  swipeable: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 底部条宽度，单位像素
   */
  lineWidth: (NumberConstructor | StringConstructor)[]
  /**
   * 底部条高度，单位像素
   */
  lineHeight: (NumberConstructor | StringConstructor)[]
  /**
   * 颜色
   */
  color: {
    type: import('vue').PropType<string>
    default: string
  }
  /**
   * 非活动状态颜色
   */
  inactiveColor: {
    type: import('vue').PropType<string>
    default: string
  }
  /**
   * 是否开启切换标签内容时的过渡动画
   */
  animated: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 切换动画过渡时间，单位毫秒
   */
  duration: {
    type: NumberConstructor
    default: number
  }
  mode: {
    type: import('vue').PropType<TagsMode>
    default: TagsMode
  }
  /**
   * 字体大小
   */
  itemFontSize: {
    type: import('vue').PropType<number>
    default: number
  }
  /**
   * 字体粗细
   */
  itemFontWeight: {
    type: import('vue').PropType<string>
    default: string
  }
  customStyle: {
    type: import('vue').PropType<string>
    default: string
  }
  customClass: {
    type: import('vue').PropType<string>
    default: string
  }
}
export type TabsProps = ExtractPropTypes<typeof tabsProps>
