import type { ExtractPropTypes, PropType } from 'vue'
export type TransitionName =
  | 'fade'
  | 'fade-down'
  | 'fade-left'
  | 'fade-right'
  | 'fade-up'
  | 'slide-down'
  | 'slide-left'
  | 'slide-right'
  | 'slide-up'
  | 'zoom-in'
  | 'zoom-out'
export declare const transitionProps: {
  /**
   * 是否展示组件
   * 类型：boolean
   * 默认值：false
   */
  show: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 动画执行时间
   * 类型：number | boolean | Record<string, number>
   * 默认值：300 (毫秒)
   */
  duration: {
    type: PropType<Record<string, number> | number | boolean>
    default: number
  }
  /**
   * 动画类型
   * 类型：string
   * 可选值：fade / fade-up / fade-down / fade-left / fade-right / slide-up / slide-down / slide-left / slide-right / zoom-in
   * 默认值：'fade'
   */
  name: {
    type: PropType<'' | TransitionName>
    default: '' | TransitionName
  }
  /**
   * 是否延迟渲染子组件
   * 类型：boolean
   * 默认值：true
   */
  lazyRender: {
    type: BooleanConstructor
    default: boolean
  }
  /**
   * 进入过渡的开始状态
   * 类型：string
   */
  enterClass: {
    type: PropType<string>
    default: string
  }
  /**
   * 进入过渡的激活状态
   * 类型：string
   */
  enterActiveClass: {
    type: PropType<string>
    default: string
  }
  /**
   * 进入过渡的结束状态
   * 类型：string
   */
  enterToClass: {
    type: PropType<string>
    default: string
  }
  /**
   * 离开过渡的开始状态
   * 类型：string
   */
  leaveClass: {
    type: PropType<string>
    default: string
  }
  /**
   * 离开过渡的激活状态
   * 类型：string
   */
  leaveActiveClass: {
    type: PropType<string>
    default: string
  }
  /**
   * 离开过渡的结束状态
   * 类型：string
   */
  leaveToClass: {
    type: PropType<string>
    default: string
  }
  customStyle: {
    type: PropType<string>
    default: string
  }
  customClass: {
    type: PropType<string>
    default: string
  }
}
export type TransitionProps = ExtractPropTypes<typeof transitionProps>
