import { type CountryCode } from 'libphonenumber-js';
/**
 * A phone number input is a specialized input field designed to capture and validate phone numbers, ensuring correct formatting based on country-specific dialing codes. It often includes a country selector that automatically adjusts the international dialing code. This component improves user experience by standardizing phone number entries, reducing errors, and facilitating global compatibility. It is commonly used in registration forms, authentication flows, and contact information fields.
 *
 * @event valid {CustomEvent<boolean>} - Emits the validity of the value when the PhoneNumber changes.
 */
interface Props {
    [key: string]: any;
    /**
     * A unique identifier for the phone number input element, used to associate the label with the form element.
     */
    id: string;
    /**
     * The current value of the phone number input field.
     */
    value?: string;
    /**
     * Default country code for phone number formatting (e.g., 'FR', 'US', 'PT').
     */
    defaultcountry?: CountryCode;
    /**
     * A placeholder text to show in the phone number input when it is empty.
     */
    placeholder?: string;
    /**
     * Determines the size of the phone number input.
     */
    size?: 's' | 'm';
    /**
     * If `true`, applies an invalid state to the password input.
     */
    isinvalid?: boolean;
    /**
     * If `true`, disables the input, making it non-interactive.
     */
    disabled?: boolean;
    /**
     * If `true`, the input is read-only (cannot be edited).
     */
    readonly?: boolean;
    /**
     * If `true`, display the country calling code prefix (+33, +1, etc.).
     */
    prefix?: boolean;
    /**
     * If `true`, display the country flag selector
     */
    flag?: boolean;
    /**
     * Locale for displaying country names (e.g., 'fr', 'en', 'es', 'pt').
     */
    locale?: string;
    /**
     * List of country codes to display in the selector. If not provided, all countries will be shown.
     */
    countrycodes?: CountryCode[];
    /**
     * Callback fired when the country code changes, providing the new country code as an argument.
     */
    onCountryCodeChange?: (countryCode: CountryCode) => void;
    /**
     * Callback fired when the validity of the value when the PhoneNumber changes.
     */
    onValid?: (phoneNumber: {
        valid: boolean;
        formattedValue: string;
        value: string;
        countryCode: string;
    }) => void;
}
declare const PhoneNumber: import("svelte").Component<Props, {}, "value" | "defaultcountry">;
type PhoneNumber = ReturnType<typeof PhoneNumber>;
export default PhoneNumber;
//# sourceMappingURL=PhoneNumber.svelte.d.ts.map