import * as React from "react"; export type Mask = Array | false; export interface PipeConfig { placeholder: string; placeholderChar: string; currentCaretPosition: number; keepCharPositions: boolean; rawValue: string; guide: boolean | undefined; previousConformedValue: string | undefined; } export type ConformToMaskConfig = Partial>; export interface MaskedInputProps extends React.InputHTMLAttributes { mask: Mask | ((value: string) => Mask); guide?: boolean; placeholderChar?: string; keepCharPositions?: boolean; pipe?: ( conformedValue: string, config: PipeConfig, ) => false | string | { value: string; indexesOfPipedChars: number[] }; showMask?: boolean; render?: ( ref: (inputElement: HTMLElement) => void, props: { onChange: (event: React.ChangeEvent) => void; onBlur: (event: React.FocusEvent) => void; defaultValue: string | undefined; }, ) => React.ReactNode; } export interface ConformToMaskResult { conformedValue: string; meta: { someCharsRejected: boolean; }; } export default class MaskedInput extends React.Component { inputElement: HTMLElement; } export function conformToMask( text: string, mask: Mask | ((value: string) => Mask), config?: ConformToMaskConfig, ): ConformToMaskResult;