import type { InputFormatType, InputProps, InputValue } from '../input';
import type { PopupProps, PopupVisibleChangeContext } from '../popup';
import type { RangeInputProps } from '../range-input';
import type { LNode } from '../../common.type';
export interface TypeRangeInputProps {
    activeIndex?: number;
    clearable?: boolean;
    disabled?: boolean;
    format?: InputFormatType | Array<InputFormatType>;
    inputProps?: InputProps | Array<InputProps>;
    label?: string | LNode;
    placeholder?: string | Array<string>;
    prefixIcon?: LNode;
    readonly?: boolean;
    separator?: string | LNode;
    showClearIconOnEmpty?: boolean;
    size?: 'small' | 'medium' | 'large';
    status?: 'success' | 'warning' | 'error';
    suffix?: string | LNode;
    suffixIcon?: LNode;
    tips?: string | LNode;
    value?: RangeInputValue;
    defaultValue?: RangeInputValue;
    onBlur?: (value: RangeInputValue, context?: {
        e?: FocusEvent;
        position?: RangeInputPosition;
    }) => void;
    onChange?: (value: RangeInputValue, context?: {
        e?: InputEvent | MouseEvent;
        position?: RangeInputPosition;
        trigger?: 'input' | 'clear';
    }) => void;
    onClear?: (context: {
        e: MouseEvent;
    }) => void;
    onClick?: (context?: {
        e?: MouseEvent;
        position?: RangeInputPosition;
    }) => void;
    onEnter?: (value: RangeInputValue, context?: {
        e?: InputEvent | MouseEvent;
        position?: RangeInputPosition;
    }) => void;
    onFocus?: (value: RangeInputValue, context?: {
        e?: FocusEvent;
        position?: RangeInputPosition;
    }) => void;
    onMouseenter?: (context: {
        e: MouseEvent;
    }) => void;
    onMouseleave?: (context: {
        e: MouseEvent;
    }) => void;
}
export interface RangeInputInstanceFunctions {
    blur?: (options?: {
        position?: RangeInputPosition;
    }) => void;
    focus?: (options?: {
        position?: RangeInputPosition;
    }) => void;
    select?: (options?: {
        position?: RangeInputPosition;
    }) => void;
}
export interface TypeRangeInputPopupProps {
    autoWidth?: boolean;
    disabled?: boolean;
    inputValue?: RangeInputValue;
    defaultInputValue?: RangeInputValue;
    panel?: LNode;
    popupProps?: PopupProps;
    popupVisible?: boolean;
    rangeInputProps?: RangeInputProps;
    readonly?: boolean;
    status?: 'success' | 'warning' | 'error';
    tips?: string | LNode;
    onInputChange?: (value: RangeInputValue, context?: RangeInputValueChangeContext) => void;
    onPopupVisibleChange?: (visible: boolean, context: PopupVisibleChangeContext) => void;
}
export declare type RangeInputValue = Array<InputValue>;
export declare type RangeInputPosition = 'first' | 'second' | 'all';
export interface RangeInputValueChangeContext {
    e?: InputEvent | MouseEvent;
    trigger?: 'input' | 'clear';
    position?: RangeInputPosition;
}
