import { type ComponentPropsWithoutRef, type ReactNode } from "react";
export type PhoneInputSize = "sm" | "md" | "lg";
export interface CountryOption {
    /** ISO-3166-1 alpha-2 — "US", "GB", "IN", … */
    code: string;
    name: string;
    /** E.164 dial code — "+1", "+44", … */
    dialCode: string;
    /** Emoji flag glyph. Browser support is good on macOS / iOS / Android;
     *  Windows renders the country code as a fallback. */
    flag?: string;
}
type InputPropsBase = Omit<ComponentPropsWithoutRef<"input">, "type" | "size" | "value" | "onChange" | "prefix">;
export interface PhoneInputProps extends InputPropsBase {
    label?: ReactNode;
    /** Local number (without dial code). */
    value: string;
    /** ISO-3166-1 alpha-2 code of the currently selected country. */
    countryCode: string;
    onChange?: (value: string) => void;
    onCountryChange?: (code: string) => void;
    countries?: CountryOption[];
    size?: PhoneInputSize;
    disabled?: boolean;
    error?: ReactNode;
    helperText?: ReactNode;
    /** Show a search field at the top of the country listbox. Auto-on when
     *  there are more than 8 countries; force on/off via the prop. */
    searchable?: boolean;
    searchPlaceholder?: string;
    /** Extra class on the wrapper (NOT the input). */
    wrapperClassName?: string;
}
export declare const PhoneInput: import("react").ForwardRefExoticComponent<PhoneInputProps & import("react").RefAttributes<HTMLInputElement>>;
export {};
//# sourceMappingURL=PhoneInput.d.ts.map