export type Cleanup = () => void; type FormatMode = "national" | "international" | "e164"; export interface PhoneInputProps { id?: string; name?: string; label?: string; placeholder?: string; helperText?: string; value?: string; defaultValue?: string; disabled?: boolean; readOnly?: boolean; required?: boolean; autoComplete?: string; country?: string; preferredCountries?: string[]; allowCountrySelect?: boolean; separateDialCode?: boolean; autoDetectCountry?: boolean; format?: FormatMode; maxLength?: number; allowExtensions?: boolean; pattern?: string; minDigits?: number; maxDigits?: number; clearable?: boolean; showCopy?: boolean; showExample?: boolean; debounceMs?: number; className?: string; variant?: "outlined" | "filled"; size?: "sm" | "md" | "lg"; fullWidth?: boolean; onChange?: (e164: string, meta: PhoneMeta) => void; onBlur?: (e164: string, meta: PhoneMeta) => void; onFocus?: (e164: string, meta: PhoneMeta) => void; onValidate?: (isValid: boolean, message?: string) => void; onCountryChange?: (iso2: string) => void; onEnter?: (e164: string, meta: PhoneMeta) => void; onEscape?: () => void; ariaLabel?: string; ariaDescribedBy?: string; invalid?: boolean; } export interface PhoneMeta { iso2: string; dialCode: string; national: string; international: string; e164: string; digits: string; } export declare function createPhoneInput(el: HTMLElement, props?: PhoneInputProps): { destroy: Cleanup; }; export {};