import React, { SyntheticEvent } from 'react'; export declare type Timeout = ReturnType; export interface NumberFormatState { value?: string; numAsString?: string; mounted: boolean; } export interface NumberFormatValues { floatValue: number | undefined; formattedValue: string; value: string; } export declare enum SourceType { event = "event", props = "prop" } export interface SourceInfo { event?: SyntheticEvent; source: SourceType; } export declare type FormatInputValueFunction = (inputValue: string) => string; export declare type RemoveFormattingFunction = (inputValue: string, changeMeta?: ChangeMeta) => string; export interface SyntheticInputEvent extends React.SyntheticEvent { readonly target: HTMLInputElement; data: any; } export declare type ChangeMeta = { from: { start: number; end: number; }; to: { start: number; end: number; }; lastValue: string; }; export declare type InputAttributes = Omit, 'defaultValue' | 'value' | 'children'>; declare type NumberFormatProps = Props & Omit & Omit & { customInput?: React.ComponentType; }; export declare type OnValueChange = (values: NumberFormatValues, sourceInfo: SourceInfo) => void; export declare type IsCharacterSame = (compareProps: { currentValue: string; lastValue: string; formattedValue: string; currentValueIndex: number; formattedValueIndex: number; }) => boolean; declare type NumberFormatBase = { type?: 'text' | 'tel' | 'password'; displayType?: 'input' | 'text'; inputMode?: InputAttributes['inputMode']; renderText?: (formattedValue: string, otherProps: Partial) => React.ReactNode; format?: FormatInputValueFunction; removeFormatting?: RemoveFormattingFunction; getInputRef?: ((el: HTMLInputElement) => void) | React.Ref; value?: number | string | null; defaultValue?: number | string | null; valueIsNumericString?: boolean; onValueChange?: OnValueChange; isAllowed?: (values: NumberFormatValues) => boolean; onKeyDown?: InputAttributes['onKeyDown']; onMouseUp?: InputAttributes['onMouseUp']; onChange?: InputAttributes['onChange']; onFocus?: InputAttributes['onFocus']; onBlur?: InputAttributes['onBlur']; getCaretBoundary?: (formattedValue: string) => boolean[]; isValidInputCharacter?: (character: string) => boolean; isCharacterSame?: IsCharacterSame; }; export declare type NumberFormatBaseProps = NumberFormatProps; export declare type InternalNumberFormatBase = Omit; export declare type NumericFormatProps = NumberFormatProps; thousandsGroupStyle?: 'thousand' | 'lakh' | 'wan' | 'none'; decimalScale?: number; fixedDecimalScale?: boolean; allowNegative?: boolean; allowLeadingZeros?: boolean; suffix?: string; prefix?: string; }, BaseType>; export declare type PatternFormatProps = NumberFormatProps; export {};