import type { Ref, RefAttributes } from "react";
import type { FactoryOpts } from "imask";
import type { TextFieldProps } from "../TextField";
export type MaskedFieldElementType = HTMLInputElement;
export interface MaskedFieldProps extends Omit<TextFieldProps, "type" | "ref">, RefAttributes<MaskedFieldElementType> {
    mask: FactoryOpts;
    "data-testid"?: string;
    /**
     * If true, onChange and onBlur events will emit the masked (formatted) value.
     * If false (default), events will emit the unmasked (raw) value.
     *
     * @example
     * // TelephoneQuestion uses useMaskedValue={true}
     * // User types: 5551234567
     * // onChange receives: "(555) 123-4567" (formatted for display/storage)
     *
     * @example
     * // CurrencyQuestion uses useMaskedValue={false}
     * // User types: 1234
     * // User sees: "1,234" (with thousands separator)
     * // onChange receives: "1234" (raw number for calculations)
     */
    useMaskedValue?: boolean;
}
export type MaskedFieldRef = Ref<MaskedFieldElementType>;
declare function MaskedField({ ref: forwardedRef, ...props }: MaskedFieldProps): import("react/jsx-runtime").JSX.Element;
declare namespace MaskedField {
    var displayName: string;
}
export { MaskedField };
