import type { HTMLAttributes } from "react"; /** * PinInput — multi-slot OTP / code input primitive. * * Renders N separate boxes (default 6) that auto-advance focus on * input. Paste handling fills all slots from clipboard (whitespace * stripped). Arrow keys navigate; backspace clears current slot * then moves focus back when empty. * * Industry-standard pattern for email verification codes (Apple, * Stripe, Clerk, Auth0, GitHub two-factor). * * @example * verify(v)} * inputMode="numeric" * aria-label="Verification code" * /> * * Note: value is treated as controlled. If you pass a complete value * on mount, onComplete will NOT fire — onComplete fires only on * transitions from incomplete → complete. */ export interface PinInputProps extends Omit, "onChange" | "inputMode"> { length?: number; value?: string; onChange?: (value: string) => void; onComplete?: (value: string) => void; inputMode?: "numeric" | "alphanumeric"; size?: "sm" | "md" | "lg"; disabled?: boolean; error?: boolean; "aria-label": string; autoFocus?: boolean; mask?: boolean; } declare const PinInput: import("react").ForwardRefExoticComponent>; export { PinInput };