import type { CheckboxProps } from "antd/es/checkbox";
import type { DatePickerProps, MonthPickerProps, RangePickerProps, WeekPickerProps } from "antd/es/date-picker";
import type { DividerProps } from "antd/es/divider";
import type { FormListProps } from "antd/es/form";
import type { InputProps, TextAreaProps } from "antd/es/input";
import type { InputNumberProps } from "antd/es/input-number";
import type { RadioProps } from "antd/es/radio";
import type { SelectProps } from "antd/es/select";

/**
 * 表单项类型枚举
 */
export declare const FORM_ITEM_RENDER_ENUM: {
  /** 映射为 antd Input */
  INPUT: "input";
  /** 映射为 antd Input.TextArea */
  TEXTAREA: "textarea";
  /** 映射为 antd InputNumber */
  INPUT_NUMBER: "inputNumber";
  /** 映射为 antd InputNumber */
  NUMBER: "number";
  /** 映射为 antd InputNumber */
  INTEGER: "integer";
  /** 映射为 antd Select */
  SELECT: "select";
  /** 映射为 antd Radio.Group */
  RADIO: "radio";
  /** 映射为 antd Checkbox.Group */
  CHECKBOX: "checkbox";
  /** 映射为 antd DatePicker，日期格式为YYYY-MM-DD */
  DATE: "date";
  /** 映射为 antd DatePicker.MonthPicker，日期格式为YYYY-MM */
  DATE_MONTH: "dateMonth";
  /** 映射为 antd DatePicker.YearPicker，日期格式为YYYY */
  DATE_YEAR: "dateYear";
  /** 映射为 antd DatePicker.WeekPicker，日期格式为YYYY-wo */
  DATE_WEEK: "dateWeek";
  /** 映射为 antd DatePicker.RangePicker，日期格式为YYYY-MM-DD */
  DATE_RANGE: "dateRange";
  /** 映射为 antd DatePicker，日期格式为YYYY-MM-DD HH:mm:ss */
  DATETIME: "datetime";
  /** 映射为 antd DatePicker.RangePicker，日期格式为YYYY-MM-DD HH:mm:ss */
  DATETIME_RANGE: "datetimeRange";
  /** 映射为 antd Divider */
  DIVIDER: "divider";
  /** 映射为 antd FormList */
  FORM_LIST: "formList";
};

export interface FORM_ITEM_RENDER_TYPE_MAP {
  input: InputProps;
  textarea: TextAreaProps;
  inputNumber: InputNumberProps;
  number: InputNumberProps;
  integer: InputNumberProps;
  select: SelectProps;
  radio: RadioProps;
  checkbox: CheckboxProps;
  date: DatePickerProps;
  dateMonth: MonthPickerProps;
  dateYear: DatePickerProps;
  dateWeek: WeekPickerProps;
  dateRange: RangePickerProps;
  datetime: DatePickerProps;
  datetimeRange: RangePickerProps;
  divider: DividerProps;
  formList: FormListProps;
}
