import { TAny } from '@flatbiz/utils';
import { DatePicker, GetProps } from 'antd';

export type TDayjsDateType = "YYYY-MM-DD HH:mm:ss" | "YYYY-MM-DD HH:mm" | "YYYY-MM-DD HH" | "YYYY-MM-DD" | (string & {});
export type RangePickerDateProps = GetProps<typeof DatePicker.RangePicker>;
export type DateRangePickerWrapperProps = Omit<RangePickerDateProps, "value" | "onChange" | "onCalendarChange" | "format"> & {
	value?: [
		string,
		string
	];
	onChange?: (value?: [
		string,
		string
	]) => void;
	/**
	 * 1. minDate、maxDate 与 format格式相同；默认：YYYY-MM-DD
	 * 2. maxDays 最大可选的天数
	 */
	disabledDateConfig?: {
		minDate?: TDayjsDateType;
		maxDate?: TDayjsDateType;
		maxDays?: number;
		/** 禁用 小时 刻度列表，与日期无关  */
		disabledHourList?: number[];
		/** 禁用 分钟 刻度列表，与日期无关 */
		disabledMinuteList?: number[];
		/** 禁用 秒钟 刻度列表，与日期无关 */
		disabledSecondList?: number[];
	};
	format?: TDayjsDateType;
	/** value 输出适配 */
	outputNormalize?: (value: [
		string,
		string
	]) => TAny;
	/** value 输入适配 */
	inputNormalize?: (value?: TAny) => [
		string,
		string
	] | undefined;
};
/**
 * DatePicker.RangePicker包装组件
 * ```
 * 1. value类型为 [string, string],可以通过 inputNormalize来进行自定义转换
 * 2. onChange返回类型 [string, string]，可以通过 outputNormalize来进行自定义转换
 * 3. 默认格式化类型 YYYY-MM-DD； 当showTime===true时，默认格式化类型YYYY-MM-DD HH:mm:ss；其他格式化类型自定义format
 * 4. 可设置disabledDateConfig，来控制日期项的disbaled状态
 * 5. 设置 disabledDate 后，disabledDateConfig配置将失效
 * 6. 设置 disabledTime 后，内置的disabledTime逻辑将失效
 *
 * TODO: 存在场景缺陷，当设置maxDays、showTime后，在选择单个日期不通过确认按钮直接切换输入框，无法获取回调，无法约束disabledDate
 * ```
 */
export declare const DateRangePickerWrapper: (props: DateRangePickerWrapperProps) => import("react").JSX.Element;

export {};
