import { ChangeEventHandler, ClipboardEventHandler, KeyboardEventHandler } from 'react';
import { InputOTPContextValue } from './InputOTPContext';
export interface UseInputOTPProps {
    maxLength: number;
    type: 'text' | 'number' | 'password' | 'tel';
    value?: string;
    defaultValue: string;
    onValueChange?: (value: string) => void;
    isValid: boolean;
    disabledProp: boolean;
    autoFocus: boolean;
    forceUppercase: boolean;
    filterKeys: string[];
    pattern?: string;
    placeholder: string;
    nameProp?: string;
}
export interface UseInputOTPReturn {
    uuid: string;
    inputRef: React.RefObject<HTMLInputElement | null>;
    containerRef: React.RefObject<HTMLDivElement | null>;
    name: string | undefined;
    disabled: boolean;
    isInvalid: boolean;
    isRequired: boolean;
    description: string | undefined;
    maxLength: number;
    intent: 'neutral' | 'success' | 'alert' | 'error';
    currentValue: string;
    activeIndex: number;
    slots: {
        char: string;
        isActive: boolean;
        hasFakeCaret: boolean;
    }[];
    contextValue: InputOTPContextValue;
    handleChange: ChangeEventHandler<HTMLInputElement>;
    handleKeyDown: KeyboardEventHandler<HTMLInputElement>;
    handlePaste: ClipboardEventHandler<HTMLInputElement>;
    handleFocus: () => void;
    handleBlur: () => void;
    handleClick: () => void;
    labelId: string | undefined;
}
export declare const useInputOTP: ({ maxLength, type, value: controlledValue, defaultValue, onValueChange, isValid, disabledProp, autoFocus, forceUppercase, filterKeys, pattern, placeholder, nameProp, }: UseInputOTPProps) => UseInputOTPReturn;
