import { RenderFunction, SetupContext, Ref } from 'vue'
import { DefineVxeComponentApp, DefineVxeComponentOptions, VxeComponentBaseOptions, VxeComponentEventParams } from '@vxe-ui/core'
import { VxeFormItemPropTypes } from './form-item'

/* eslint-disable no-use-before-define,@typescript-eslint/ban-types */

/**
 * @deprecated
 */
export declare const VxeFormGather: DefineVxeComponentApp<VxeFormGatherProps, VxeFormGatherEventProps, VxeFormGatherSlots>
/**
 * @deprecated
 */
export type VxeFormGatherComponent = DefineVxeComponentOptions<VxeFormGatherProps, VxeFormGatherEventProps>
/**
 * @deprecated
 */
export interface VxeFormGatherConstructor extends VxeComponentBaseOptions, VxeFormGatherMethods {
  props: VxeFormGatherProps
  context: SetupContext<VxeFormGatherEmits>
  reactData: FormGatherReactData
  getRefMaps(): FormGatherPrivateRef
  getComputeMaps(): FormGatherPrivateComputed
  renderVN: RenderFunction
}
/**
 * @deprecated
 */
export interface FormGatherPrivateRef {
  refElem: Ref<HTMLDivElement | undefined>
}
/**
 * @deprecated
 */
export interface VxeFormGatherPrivateRef extends FormGatherPrivateRef { }
/**
 * @deprecated
 */
export namespace VxeFormGatherPropTypes {
}
/**
 * @deprecated
 */
export type VxeFormGatherProps = {
  /**
   * 栅格占据的列数（共 24 分栏）
   */
  span?: VxeFormItemPropTypes.Span
  /**
   * 给表单项附加 className
   */
  className?: VxeFormItemPropTypes.ClassName
}
/**
 * @deprecated
 */
export interface FormGatherPrivateComputed {
}
export interface VxeFormGatherPrivateComputed extends FormGatherPrivateComputed { }
/**
 * @deprecated
 */
export interface FormGatherReactData {
}
/**
 * @deprecated
 */
export interface FormGatherMethods {
}
/**
 * @deprecated
 */
export interface VxeFormGatherMethods extends FormGatherMethods { }
/**
 * @deprecated
 */
export interface FormGatherPrivateMethods { }
/**
 * @deprecated
 */
export interface VxeFormGatherPrivateMethods extends FormGatherPrivateMethods { }
/**
 * @deprecated
 */
export type VxeFormGatherEmits = []
/**
 * @deprecated
 */
export namespace VxeFormGatherDefines {
  export interface FormGatherEventParams extends VxeComponentEventParams {
    $formGather: VxeFormGatherConstructor
  }
}
/**
 * @deprecated
 */
export type VxeFormGatherEventProps = {}
/**
 * @deprecated
 */
export interface VxeFormGatherListeners { }
/**
 * @deprecated
 */
export namespace VxeFormGatherEvents { }
/**
 * @deprecated
 */
export namespace VxeFormGatherSlotTypes {
  export interface DefaultSlotParams {
    [key: string]: any
  }
}
/**
 * @deprecated
 */
export interface VxeFormGatherSlots {
  default: (params: VxeFormGatherSlotTypes.DefaultSlotParams) => any
}
/**
 * @deprecated
 */
export const FormGather: typeof VxeFormGather
export default VxeFormGather
