import { type IbanReason } from './is-valid-iban'; /** Agent-readiness curated handle for IbanInput. */ export interface IbanInputHandle { getValue: () => string; setValue: (value: string) => void; clear: () => void; focus: () => void; isValid: () => boolean; } /** Structured payload emitted on every keystroke alongside the raw value. */ export interface IbanChangeMeta { /** Structurally complete AND the mod-97-10 checksum matches. */ isValid: boolean; /** Whether the value has reached its country's expected length. */ isComplete: boolean; /** Why the value is (in)valid — drives consumer messaging. */ reason: IbanReason; } export interface IbanInputProps { /** Controlled value (raw, uppercased, no spaces). Pair with onChange. */ value?: string; /** Uncontrolled initial value. Normalised on mount. */ defaultValue?: string; /** Fires on every keystroke with the normalised raw string + meta. */ onChange?: (raw: string, meta: IbanChangeMeta) => void; size?: 'sm' | 'md' | 'lg'; tone?: 'default' | 'error'; /** When the invalid tone + error string surface. Never marks partial input invalid. */ validateOn?: 'change' | 'blur' | 'submit'; /** Controlled escape hatch to force the invalid state (e.g. bank rejection). */ showError?: boolean; /** Overrides the kit's default i18n error string. */ errorMessage?: string; disabled?: boolean; readOnly?: boolean; required?: boolean; placeholder?: string; /** Render the format caption when NOT inside a FormField. */ showFormatHint?: boolean; id?: string; name?: string; className?: string; 'aria-label'?: string; } declare const wrapperVariants: (props?: ({ size?: "sm" | "md" | "lg" | null | undefined; tone?: "default" | "error" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export declare const IbanInput: import("react").ForwardRefExoticComponent>; export { wrapperVariants as ibanWrapperVariants }; //# sourceMappingURL=iban-input.d.ts.map