interface UseInputMaskParams {
    /**
     * The current value of the input
     */
    value: string;
    /**
     * A pattern to specify the format (e.g. "(***) ***-****")
     */
    pattern: string;
    /**
     * Character in the pattern that will be replaced with input values
     * @default "*"
     */
    delimiter?: string;
    /**
     * Whether to restrict input to the pattern length
     * @default true
     */
    strict?: boolean;
    /**
     * Callback function to be called with the masked value on change.
     */
    onChange?: (maskedValue: string, event?: React.ChangeEvent<HTMLInputElement>) => void;
}
interface UseInputMaskResult {
    /**
     * The formatted value according to the pattern
     */
    formattedValue: string;
    /**
     * The masked placeholder text (portion of pattern not yet filled)
     */
    placeholderMask: string;
    /**
     * Whether masking is currently active
     */
    isMasking: boolean;
    /**
     * Handler for input change events that formats the input and calls the onChange prop
     */
    maskedOnChange: (newValue: string, event?: React.ChangeEvent<HTMLInputElement>) => void;
    /**
     * Raw input value from the user without formatting characters
     */
    inputValue: string;
}
export declare function useInputMask({ value, pattern, delimiter, strict, onChange, }: UseInputMaskParams): UseInputMaskResult;
export {};
