import * as use_mask_input from 'use-mask-input';
import { Mask, Options } from 'use-mask-input';
export { Mask, Options, useHookFormMask, useMaskInput, useTanStackFormMask, withHookFormMask, withMask, withTanStackFormMask } from 'use-mask-input';
import * as React from 'react';
export { composeRefs } from '../../lib/compose-refs.js';
import { Input } from './input.js';

/** Default mask UX per Shadcn Studio demos (underscore placeholder, no hover mask). */
declare const exxatInputMaskDefaults: Options;
/** Common patterns (Inputmask `9` = digit, `a` = letter, `*` = alnum). */
declare const exxatMaskPatterns: {
    /** US NANP 10-digit display */
    readonly phoneUS: "(999) 999-9999";
    /** US ZIP or ZIP+4 */
    readonly zipUS: "99999[-9999]";
    /** Calendar-style date (validate separately). */
    readonly dateMDY: "99/99/9999";
    /** Studio input-mask-01 style — UK-style plate-ish token; adjust per product. */
    readonly customReference: "AA99 AAA";
};
declare function exxatTimeMaskOptions(): Options & {
    inputFormat: string;
    outputFormat: string;
};
declare function useExxatPhoneMask(options?: Options): (input: use_mask_input.Input | null) => void;
declare function useExxatZipMask(options?: Options): (input: use_mask_input.Input | null) => void;
declare function useExxatDateMDYMask(options?: Options): (input: use_mask_input.Input | null) => void;
declare function useExxatTimeMask(options?: Options): (input: use_mask_input.Input | null) => void;
declare function useExxatCustomMask(mask: Mask, options?: Options): (input: use_mask_input.Input | null) => void;
/** Merge React Hook Form Controller `field.ref` with a mask ref. */
declare function useExxatMaskedFieldRef(fieldRef: React.Ref<HTMLInputElement>, mask: Mask, options?: Options): React.RefCallback<HTMLInputElement>;
type MaskedInputProps = React.ComponentProps<typeof Input> & {
    mask: Mask;
    maskOptions?: Options;
};
/** Standalone masked `Input` (forwardRef + merged mask ref). */
declare const MaskedInput: React.ForwardRefExoticComponent<Omit<MaskedInputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;

export { MaskedInput, type MaskedInputProps, exxatInputMaskDefaults, exxatMaskPatterns, exxatTimeMaskOptions, useExxatCustomMask, useExxatDateMDYMask, useExxatMaskedFieldRef, useExxatPhoneMask, useExxatTimeMask, useExxatZipMask };
