import React from 'react'; import { ListenerEventHandler } from '../utils/addEventListener'; interface OnchangeHandler { (value: string, name?: string): void; } interface ChangeEvent { target: { value: string | number; }; } export interface InputNumberProps extends Omit, 'onChange'> { onChange: OnchangeHandler; className?: string; value?: string | number; min?: number; max?: number; packMultiple?: number; disabled?: boolean; isPositive?: boolean; size?: number; name?: string; delay?: number; onChangePackMultipleBefore?: OnchangeHandler; onChangePackMultipleAfter?: OnchangeHandler; visibleButton?: boolean; } interface InputNumberStates { enter: boolean; focus: boolean; } interface DebounceRef { (value: string): void; cancel: () => void; } interface LocationInfo { left: number; top: number; width: number; height: number; } declare class InputNumber extends React.Component { static defaultProps: { value: string; name: string; size: number; disabled: boolean; isPositive: boolean; delay: number; visibleButton: boolean; }; constructor(props: InputNumberProps); currentRef: React.RefObject; debounce: DebounceRef; addLocationInfo: LocationInfo; subLocationInfo: LocationInfo; mouseUpHandler: ListenerEventHandler; mouseMoveHandler: ListenerEventHandler; componentDidMount(): void; componentWillUnmount(): void; onFocus: () => void; onBlur: () => void; onMouseEnter: () => void; onMouseLeave: () => void; onMouseMove: (ev: React.MouseEvent) => void; onMouseDown: (ev: React.MouseEvent) => void; onMouseUp: () => void; addMouseMoveListener: () => void; addMouseUpListener: () => void; getElement: () => { inputEl: HTMLInputElement; addBtnEl: HTMLDivElement; subBtnEl: HTMLDivElement; }; getMouseElement: (ev: React.MouseEvent) => { isAdd: boolean; isSub: boolean; }; isInside: (ev: React.MouseEvent, locationInfo: LocationInfo) => boolean; getLocationInfo: () => void; getCurrentValue: (value: string) => number; onChangePackMultipleValue: (value: string) => void; getDebounce: () => DebounceRef; callback: (value: string) => void; onValueChange: (ev: ChangeEvent) => void; onAdd: () => void; onSub: () => void; renderButton: () => JSX.Element; render(): JSX.Element; } export default InputNumber;