import { InputProps } from '../input';
import { LNode } from '../../common.type';
export interface TypeInputNumberProps<T = InputNumberValue> {
    align?: 'left' | 'center' | 'right';
    autoWidth?: boolean;
    decimalPlaces?: number;
    disabled?: boolean;
    format?: (value: InputNumberValue, context?: {
        fixedNumber?: InputNumberValue;
    }) => InputNumberValue;
    inputProps?: InputProps;
    label?: string | LNode;
    largeNumber?: boolean;
    max?: InputNumberValue;
    min?: InputNumberValue;
    placeholder?: string;
    readonly?: boolean;
    size?: 'small' | 'medium' | 'large';
    status?: 'default' | 'success' | 'warning' | 'error';
    step?: InputNumberValue;
    suffix?: string | LNode;
    theme?: 'column' | 'row' | 'normal';
    tips?: string | LNode;
    value?: T;
    defaultValue?: T;
    onBlur?: (value: InputNumberValue, context: {
        e: FocusEvent;
    }) => void;
    onChange?: (value: T, context: ChangeContext) => void;
    onEnter?: (value: InputNumberValue, context: {
        e: KeyboardEvent;
    }) => void;
    onFocus?: (value: InputNumberValue, context: {
        e: FocusEvent;
    }) => void;
    onKeydown?: (value: InputNumberValue, context: {
        e: KeyboardEvent;
    }) => void;
    onKeypress?: (value: InputNumberValue, context: {
        e: KeyboardEvent;
    }) => void;
    onKeyup?: (value: InputNumberValue, context: {
        e: KeyboardEvent;
    }) => void;
    onValidate?: (context: {
        error?: 'exceed-maximum' | 'below-minimum';
    }) => void;
}
export declare type InputNumberValue = number | string;
export interface ChangeContext {
    type: ChangeSource;
    e: InputEvent | MouseEvent | FocusEvent | KeyboardEvent;
}
export declare type ChangeSource = 'add' | 'reduce' | 'input' | 'blur' | 'enter' | '';
