import { HTMLAttributes, ReactNode } from 'react';
export interface SegmentedInputProps extends Omit, 'onChange' | 'value' | 'defaultValue'> {
/** The controlled value of the input */
value?: string;
/** The uncontrolled default value */
defaultValue?: string;
/** Number of input segments. Overridden if 'groups' is provided. */
length?: number;
/** Array of numbers defining segment groupings. (e.g. [3, 2, 2] for ABC-12-34) */
groups?: number[];
/** Custom separator node rendered between groups. Defaults to a dash. */
separator?: ReactNode;
/** Input type for each segment */
type?: 'text' | 'password' | 'number';
/** Autocomplete behavior. Common value for SMS OTP is "one-time-code" */
autoComplete?: string;
/** Callback fired when the combined value changes */
onChange?: (value: string) => void;
/** Whether the input is disabled */
disabled?: boolean;
/**
* Optional per-character validation. If false is returned,
* the character is rejected.
* */
validateChar?: (char: string, index: number) => boolean;
/** Visual presentation style. */
layout?: 'separated' | 'grouped';
/** Name attribute for native form submission */
name?: string;
}
export declare function SegmentedInput({ value, defaultValue, length, groups, separator, type, autoComplete, onChange, disabled, validateChar, layout, name, className, ...props }: SegmentedInputProps): import("react").JSX.Element;