import type { CalendarViewMode, DateExpression, FormBaseControlSchema, FormControlProps, SchemaClassName, SchemaExpression, ShortcutValue, TimeConstraints } from '../types';
export interface InputDateBaseControlSchema extends FormBaseControlSchema {
    /**
     * 指定为日期选择控件
     */
    type: 'input-date' | 'input-datetime' | 'input-time' | 'input-month' | 'input-quarter' | 'input-year';
    /**
     * 是否显示清除按钮
     */
    clearable?: boolean;
    /**
     * 日期存储格式
     */
    format?: string;
    /**
     * 日期展示格式
     */
    inputFormat?: string;
    /**
     * 设定是否存储 utc 时间。
     */
    utc?: boolean;
    /**
     * 是否为内联模式？
     */
    embed?: boolean;
    /**
     * 边框模式，全边框，还是半边框，或者没边框。
     */
    borderMode?: 'full' | 'half' | 'none';
    /** 是否禁用年度和月份变更, 默认是false */
    disableMonthSwitch?: boolean;
}
/**
 * Date日期选择控件
 *
 */
export interface DateControlSchema extends InputDateBaseControlSchema {
    /**
     * 指定为日期选择控件
     */
    type: 'input-date';
    /**
     * 日期存储格式
     * @default X
     */
    format?: string;
    /**
     * 日期展示格式
     * @default YYYY-MM-DD
     */
    inputFormat?: string;
    /**
     * 点选日期后是否关闭弹窗
     */
    closeOnSelect?: boolean;
    /**
     * 限制最小日期
     */
    minDate?: SchemaExpression;
    /**
     * 限制最大日期
     */
    maxDate?: SchemaExpression;
    /**
     * 快捷时间
     */
    shortcuts?: string | Array<ShortcutValue | {
        label: string;
        value: ShortcutValue | DateExpression;
    }>;
    /**
     * 快捷键区域样式类
     */
    shortcutsClassName?: SchemaClassName;
    /**
     * 选择快捷键的参考时间, 支持关联表达式
     */
    shortcutsRefDate?: SchemaExpression;
    /**
     * 快捷键显示位置, picker代表在面板中, input表示在输入框后, 默认是picker
     */
    shortcutsPosition?: 'picker' | 'input';
    /**
     * 元素`.cxd-DatePicker-input`的样式类
     */
    pickerInputClassName?: SchemaClassName;
}
/**
 * Datetime日期时间选择控件
 *
 */
export interface DateTimeControlSchema extends InputDateBaseControlSchema {
    /**
     * 指定为日期时间选择控件
     */
    type: 'input-datetime';
    /**
     * 时间的格式。
     *
     * @default HH:mm
     */
    timeFormat?: string;
    /**
     * 限制最小日期
     */
    minDate?: string;
    /**
     * 限制最大日期
     */
    maxDate?: string;
    /**
     * 时间输入范围限制
     */
    timeConstraints?: TimeConstraints;
}
/**
 * Time 时间选择控件
 *
 */
export interface TimeControlSchema extends InputDateBaseControlSchema {
    /**
     * 指定为日期时间选择控件
     */
    type: 'input-time';
    /**
     * 时间的格式。
     *
     * @default HH:mm
     */
    timeFormat?: string;
    /**
     * 时间输入范围限制
     */
    timeConstraints?: TimeConstraints;
}
/**
 * Month 月份选择控件
 *
 */
export interface MonthControlSchema extends InputDateBaseControlSchema {
    /**
     * 指定为月份时间选择控件
     */
    type: 'input-month';
}
/**
 * 季度选择控件
 */
export interface QuarterControlSchema extends InputDateBaseControlSchema {
    /**
     * 指定为月份时间选择控件
     */
    type: 'input-quarter';
}
/**
 * 年份选择控件
 */
export interface YearControlSchema extends InputDateBaseControlSchema {
    /**
     * 指定为月份时间选择控件
     */
    type: 'input-year';
}
export interface DateProps extends FormControlProps, Omit<DateControlSchema, 'type' | 'label' | 'className' | 'descriptionClassName' | 'inputClassName'> {
    viewMode: CalendarViewMode;
    timeFormat?: string;
    valueFormat?: string;
    timeConstraints?: TimeConstraints;
    disabled: boolean;
    iconClassName?: string;
}
