import type { InputProps } from '../input';
import type { PopupProps } from '../popup';
import type { RangeInputProps } from '../range-input';
import type { LNode } from '../../common';
export interface TypeTimePickerProps {
    allowInput?: boolean;
    clearable?: boolean;
    disableTime?: (h: number, m: number, s: number) => Partial<{
        hour: Array<number>;
        minute: Array<number>;
        second: Array<number>;
    }>;
    disabled?: boolean;
    format?: string;
    hideDisabledTime?: boolean;
    inputProps?: InputProps;
    placeholder?: string;
    popupProps?: PopupProps;
    presets?: PresetTime;
    status?: 'default' | 'success' | 'warning' | 'error';
    steps?: Array<string | number>;
    tips?: string | LNode;
    value?: TimePickerValue;
    defaultValue?: TimePickerValue;
    onBlur?: (context: {
        value: TimePickerValue;
        e: FocusEvent;
    }) => void;
    onChange?: (value: TimePickerValue) => void;
    onClose?: (context: {
        e: MouseEvent;
    }) => void;
    onFocus?: (context: {
        value: TimePickerValue;
        e: FocusEvent;
    }) => void;
    onInput?: (context: {
        value: TimePickerValue;
        e: InputEvent;
    }) => void;
    onOpen?: (context: {
        e: MouseEvent;
    }) => void;
    onPick?: (value: TimePickerValue) => void;
}
export interface TypeTimeRangePickerProps {
    allowInput?: boolean;
    clearable?: boolean;
    disableTime?: (h: number, m: number, s: number, context: {
        partial: TimeRangePickerPartial;
    }) => Partial<{
        hour: Array<number>;
        minute: Array<number>;
        second: Array<number>;
    }>;
    disabled?: boolean | Array<boolean>;
    format?: string;
    hideDisabledTime?: boolean;
    placeholder?: string | Array<string>;
    popupProps?: PopupProps;
    presets?: PresetTimeRange;
    rangeInputProps?: RangeInputProps;
    status?: 'default' | 'success' | 'warning' | 'error';
    steps?: Array<string | number>;
    tips?: string | LNode;
    value?: TimeRangeValue;
    defaultValue?: TimeRangeValue;
    onBlur?: (context: {
        value: TimeRangeValue;
        e?: FocusEvent;
        position?: TimeRangePickerPartial;
    }) => void;
    onChange?: (value: TimeRangeValue) => void;
    onFocus?: (context?: {
        value: TimeRangeValue;
        e?: FocusEvent;
        position?: TimeRangePickerPartial;
    }) => void;
    onInput?: (context: {
        value: TimeRangeValue;
        e?: InputEvent;
        position?: TimeRangePickerPartial;
    }) => void;
    onPick?: (value: TimeRangeValue, context: {
        position?: TimeRangePickerPartial;
    }) => void;
}
export interface PresetTime {
    [presetName: string]: TimePickerValue | (() => TimePickerValue);
}
export type TimePickerValue = string;
export type TimeRangePickerPartial = 'start' | 'end';
export interface PresetTimeRange {
    [presetRageName: string]: TimeRangeValue | (() => TimeRangeValue);
}
export type TimeRangeValue = Array<string>;
