import { type ChangeEvent, type CompositionEvent, type InputHTMLAttributes, type ReactNode } from 'react'; import { type VariantProps } from 'class-variance-authority'; /** * Agent-readiness curated handle. The internal value setter drives the DOM * input via the native value setter so React picks up the change. */ export interface TextInputHandle { getValue: () => string; setValue: (value: string) => void; clear: () => void; focus: () => void; } declare const inputVariants: (props?: ({ size?: "sm" | "md" | "lg" | null | undefined; tone?: "default" | "error" | null | undefined; hasStart?: boolean | null | undefined; hasEnd?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface TextInputProps extends Omit, 'size' | 'onChange' | 'onCompositionStart' | 'onCompositionEnd'>, Pick, 'size' | 'tone'> { size?: 'sm' | 'md' | 'lg'; tone?: 'default' | 'error'; startAdornment?: ReactNode; endAdornment?: ReactNode; clearable?: boolean; onClear?: () => void; onChange?: (event: ChangeEvent) => void; onCompositionStart?: (event: CompositionEvent) => void; onCompositionEnd?: (event: CompositionEvent) => void; /** * Refuses paste and drop, so the user types the value, e.g. in a * confirm field. Default false. Autofill from the browser or a password * manager still works: it fills without pasting. A refusal is announced, * and shown under the field inside a `FormField`. */ blockPaste?: boolean; /** * Refuses copy, cut and dragging text out. Default false. Browsers * already refuse to copy from a password field while it is hidden. A * refusal is announced, and shown under the field inside a `FormField`. */ blockCopy?: boolean; } export declare const TextInput: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=text-input.d.ts.map