import { FactoryOpts } from 'imask'; import { default as React } from 'react'; /** * Configuration for the `useInputMask` hook. */ interface UseInputMaskOptions { /** Mask configuration passed to IMask. */ mask: FactoryOpts['mask'] | undefined; /** Input ref from the consuming component. */ ref: React.Ref | undefined; /** Optional callback invoked with the accepted masked value. */ onChange: ((value: string) => void) | undefined; } /** * Result returned by `useInputMask`. */ interface UseInputMaskResult { /** Ref callback that merges consumer ref with the internal IMask ref. */ mergedRef: (node: HTMLInputElement | null) => void; /** Indicates whether a mask is currently enabled. */ isMasked: boolean; } /** * Creates an input ref callback that conditionally attaches IMask when a mask is provided * while always forwarding the input node to the consumer ref. */ export default function useInputMask({ mask, ref, onChange }: UseInputMaskOptions): UseInputMaskResult; export {};