import React from 'react';
import { type TextMaskInputController } from './text-mask/createTextMaskInputElement';
import InputModeNumber from './text-mask/InputModeNumber';
import type { Mask, MaskFunction, Pipe } from './text-mask/types';
export type TextMaskMask = Mask | MaskFunction | boolean | {
    mask?: Mask | MaskFunction;
    pipe?: Pipe;
};
export type TextMaskInputElement = React.ReactElement;
export type TextMaskValue = string | number;
export interface TextMaskProps extends Omit<React.HTMLProps<HTMLInputElement>, 'ref'> {
    mask: TextMaskMask;
    inputRef?: React.RefObject<HTMLInputElement>;
    inputElement?: TextMaskInputElement;
    onChange?: React.ChangeEventHandler<HTMLInputElement>;
    guide?: boolean;
    value?: TextMaskValue;
    pipe?: Pipe;
    placeholderChar?: string;
    keepCharPositions?: boolean;
    showMask?: boolean;
}
export default class TextMask extends React.PureComponent<TextMaskProps> {
    inputRef: React.RefObject<HTMLInputElement>;
    textMaskInputElement?: TextMaskInputController;
    inputMode?: InputModeNumber;
    static defaultProps: {
        inputElement: any;
        inputRef: any;
        onChange: any;
        guide: any;
        value: any;
        pipe: any;
        placeholderChar: any;
        keepCharPositions: any;
        showMask: any;
    };
    constructor(props: TextMaskProps);
    componentDidMount(): void;
    componentWillUnmount(): void;
    initTextMask(): void;
    onChange: React.ChangeEventHandler<HTMLInputElement>;
    componentDidUpdate(prevProps: TextMaskProps): void;
    render(): JSX.Element;
}
