import type { ReactElement } from "react";
import React from "react";
import type { FormFieldProps } from "../FormField";
interface MaskElementProps {
    readonly isMasking: boolean;
    readonly formattedValue: string;
    readonly placeholderMask: string;
}
export declare function MaskElement({ isMasking, formattedValue, placeholderMask, }: MaskElementProps): React.JSX.Element | null;
export interface InputMaskProps {
    /**
     * A string pattern to mask the value. For example:
     *
     * - Phone number: `(***) ***-*****` = `(555) 123-3456`
     * - Hours and minutes: `**:**` = `01:20`
     *
     * By default, a `*` is used to indicate where a value would be in place. To
     * change that, use the `delimiter` prop.
     */
    readonly pattern: string;
    /**
     * Change the delimiter when you need to have a `*` as a value that the input
     * returns. For example, you want your pattern to have a `*` in it.
     *
     * ```
     * <InputMask pattern="n*n=n" delimiter="n" />
     * ```
     *
     * It would now replace `n` with the value you type and end up with `1*2=2` if
     * you give a value of `122`.
     *
     * @default "*"
     */
    readonly delimiter?: string;
    /**
     * Allow/prevent users adding from more value than the desired pattern.
     * For example, your pattern could accept 10 characters. If it's strict, your
     * users can only type 10 characters.
     *
     * @default true
     */
    readonly strict?: boolean;
    readonly children: ReactElement<FormFieldProps>;
}
export declare function InputMask({ children, delimiter, pattern, strict, }: InputMaskProps): ReactElement<FormFieldProps, string | React.JSXElementConstructor<any>>;
export {};
