import { type ExtractPropTypes, type InjectionKey, type PropType } from 'vue'
export type SidebarProvide = {
  props: Partial<SidebarProps>
  setChange: (value: number | string, label: string) => void
}
export declare const SIDEBAR_KEY: InjectionKey<SidebarProvide>
/**
 * Sidebar切换前的选项接口
 */
export type SidebarBeforeChangeOption = {
  value: number | string
  resolve: (pass: boolean) => void
}
/**
 * Sidebar切换前的钩子函数类型
 * @param option 切换选项
 */
export type SidebarBeforeChange = (option: SidebarBeforeChangeOption) => void
export declare const sidebarProps: {
  /**
   * 当前导航项的索引
   */
  modelValue: {
    type: (NumberConstructor | StringConstructor)[]
    default: number
  }
  /**
   * 在改变前执行的函数
   */
  beforeChange: PropType<SidebarBeforeChange>
  customStyle: {
    type: PropType<string>
    default: string
  }
  customClass: {
    type: PropType<string>
    default: string
  }
}
export type SidebarProps = ExtractPropTypes<typeof sidebarProps>
