import React from 'react'; export interface Item { index?: number; text: React.ReactNode | T; value?: T; } export interface FixedItem { index?: number; text: React.ReactNode; value: T; } export declare type SingleItem = string | number | Item; export declare type SingleType = Array>; export declare type MultiItem = Array>; export declare type FixedMutliItem = Array>; export declare type MultiType = Array>; export declare type FixedMultiType = Array; export interface TreeItem extends Item { children?: Array>; } export interface FixedTreeItem extends FixedItem { children?: Array>; } export declare type TreeType = Array>; export declare type FixedTreeType = Array>; export declare type Data = SingleType | MultiType | TreeType | 'region' | 'date' | 'dateRange' | 'time'; export declare type SingleValue = string | number; export declare type MultiValue = Array; export declare type Value = SingleValue | MultiValue | Date; export declare type OnChange = (value: FixedItem | Array | DatePickerValue | DateRangePickerValue, index: number | DateCol) => void; export declare type DateRange = Array; export declare type DateCol = 'year' | 'month' | 'day'; export declare type DateCols = Array; export declare type DatePickerValue = Record; export declare type DateRangePickerValue = [DatePickerValue, DatePickerValue]; export declare type TimeCol = 'hour' | 'minute' | 'second'; export declare type Step = Record; declare type getItemType = T extends ((infer R)[]) ? R : T; declare type getTreeItemType = T extends TreeType ? R : T; declare type getValueType = T extends 'time' ? FixedItem[] : T extends 'date' ? DatePickerValue : T extends 'dateRange' ? DateRangePickerValue : T extends 'region' ? FixedTreeType : SingleType> extends SingleType ? FixedItem : MultiType> extends MultiType ? FixedItem[] : TreeType> extends TreeType ? FixedTreeType : Value; export interface PickerProps { /** 标题 */ title?: string | React.ReactNode; /** 允许清除 */ allowClear?: boolean; /** 数据源 */ data: T; /** 默认选中值 */ defaultValue?: Value; /** 日期范围, */ dateRange?: DateRange; /** 日期间隔 */ step?: Step; /** 日期选项 */ dateCols?: Array<'year' | 'month' | 'day'>; /** 禁用状态 */ disabled?: boolean; /** 显示状态 */ visible?: boolean; /** 取消回调 */ onCancel?: () => void; /** 发生变化回调 */ onChange?: OnChange; /** 清除回调 */ onClear?: () => void; /** 确认回调 */ onConfirm?: (value: getValueType) => void; /** 点击阴影关闭回调 */ onClose?: () => void; } export declare type Type = 'single' | 'multi' | 'tree' | 'region' | 'date' | 'dateRange' | 'time'; export {};