import React from 'react';
import { FlintInputOtp as FlintInputOtpElement } from '@getufy/flint-ui/input-otp/flint-input-otp';
export interface FlintOtpChangeDetail {
value: string;
}
export interface FlintOtpCompleteDetail {
value: string;
}
/**
* Accessible one-time password input with copy/paste support.
Manages a hidden native `` and syncs each `flint-input-otp-slot`
with the appropriate character and active-cursor state.
*
* @slot (default) - Accepts `flint-input-otp-group`, `flint-input-otp-separator`, and `flint-input-otp-slot` elements.
*/
export interface FlintInputOtpProps extends Omit, 'defaultValue'> {
/** Current OTP value. Reflects to attribute for external observation. */
value?: string;
/** Initial uncontrolled value. Has no effect after the first render. */
defaultValue?: string;
/** Total number of character slots. */
maxLength?: number;
/** Per-character regex pattern string. Characters failing the test are */
pattern?: string;
/** Disables the OTP input. */
disabled?: boolean;
/** Form field name used when submitting form data. */
name?: string;
/** Marks the OTP input as required for form validation. */
required?: boolean;
/** Accessible label for the hidden input (used as aria-label). */
label?: string;
/** Optional description text for the hidden input (used as aria-describedby). */
description?: string;
/**
* Fired on every value change. `detail: { value: string }`.
* DOM event: `flint-otp-change`
*/
onFlintOtpChange?: (event: CustomEvent) => void;
/**
* Fired when `maxLength` chars have been entered. `detail: { value: string }`.
* DOM event: `flint-otp-complete`
*/
onFlintOtpComplete?: (event: CustomEvent) => void;
}
export declare const FlintInputOtp: React.ForwardRefExoticComponent>;