import { LocaleType } from './i-local-type';
import { IPickerColumnData } from './i-picker-column-data';
import { IAvailableDate } from './i-available-date';
import { HTMLAttributes } from 'react';
type KnownKeys<T> = {
    [K in keyof T]: string extends K ? never : number extends K ? never : K;
} extends {
    [_ in keyof T]: infer U;
} ? U : never;
type RemoveIndexSignature<T> = Pick<T, keyof T & KnownKeys<T>>;
type FixAnyHTMLAttributes = RemoveIndexSignature<HTMLAttributes<HTMLElement>>;
type NoDefaultValueHTMLAttributes = Omit<FixAnyHTMLAttributes, 'defaultValue'>;
export interface HTMLAttributesWeak extends NoDefaultValueHTMLAttributes {
    /**
     * dom id
     * @ignore
     */
    id?: any;
    /**
     * 自定义内联样式
     */
    style?: React.CSSProperties;
    /**
     * 值改变时触发的回调函数
     */
    onChange?: any;
    /**
     * 点击时触发的回调函数
     */
    onClick?: any;
    /**
     * 获得焦点时触发的回调函数
     */
    onFocus?: any;
    /**
     * 失去焦点时触发的回调函数
     */
    onBlur?: any;
    /**
     * 提交时触发的回调函数
     */
    onSubmit?: any;
    /**
     * 选中时触发的回调函数
     */
    onSelect?: any;
    /**
     * 错误时触发的回调函数
     */
    onError?: any;
}
export interface BaseComponentAttributes extends HTMLAttributesWeak {
    /**
     * @ignore 样式隔离的方案为hashClassName
     */
    prefix?: string;
    /**
     * 自定义类名
     */
    className?: string;
}
export interface ICnEmbedPicker extends BaseComponentAttributes {
    /**
     * 时间值（受限）
     */
    value?: IAvailableDate;
    /**
     * 时间初值（非受限）
     */
    defaultValue?: IAvailableDate;
    /**
     * 是否可见
     */
    visible?: boolean;
    /**
     * 小时选项步长
     */
    hourStep?: number;
    /**
     * 分钟选项步长
     */
    minuteStep?: number;
    /**
     * 秒钟选项步长
     */
    secondStep?: number;
    /**
     * 时间的格式，会同时影响选择器功能
     */
    format?: string;
    /**
     * 语言包
     */
    locale?: LocaleType;
    /**
     * 可用的时间范围
     */
    validRange?: [Date, Date];
    /**
     *  是否展示清除按钮
     */
    hasClear?: boolean;
    /**
     * 禁用小时函数
     */
    disabledHours?: (index: number) => boolean;
    /**
     * 禁用分钟函数
     */
    disabledMinutes?: (index: number) => boolean;
    /**
     * 禁用秒函数
     */
    disabledSeconds?: (index: number) => boolean;
    /**
     * 自定义渲染下拉菜单每一项
     */
    renderTimeMenuItems?: (v: IPickerColumnData[]) => IPickerColumnData[];
    /**
     * 内容清除后的回调
     */
    onClear?: () => void;
    /**
     * 值改变时触发的回调函数
     */
    onChange?: (value?: Date) => void;
    /**
     * 取消时间选择的回调
     */
    onCancel?: (reason: string) => void;
}
export {};
