declare const LionInputTel_base: typeof LionInput & import("@open-wc/dedupe-mixin").Constructor<import("../../localize/types/LocalizeMixinTypes.js").LocalizeMixinHost> & Pick<typeof import("../../localize/types/LocalizeMixinTypes.js").LocalizeMixinHost, "prototype" | "localizeNamespaces" | "waitForLocalizeNamespaces"> & Pick<typeof import("lit-element").LitElement, typeof Symbol.metadata | "prototype" | "_$litElement$" | "enabledWarnings" | "enableWarning" | "disableWarning" | "addInitializer" | "_initializers" | "elementProperties" | "properties" | "elementStyles" | "styles" | "observedAttributes" | "createProperty" | "getPropertyOptions" | "shadowRootOptions">;
/**
 * @typedef {import('../types/index.js').RegionCode} RegionCode
 * @typedef {import('awesome-phonenumber').PhoneNumberFormat} PhoneNumberFormat
 * @typedef {import('awesome-phonenumber').PhoneNumberTypes} PhoneNumberTypes
 * @typedef {import('../../form-core/types/FormatMixinTypes.js').FormatOptions} FormatOptions
 * @typedef {* & import('awesome-phonenumber')} AwesomePhoneNumber
 * @typedef {FormatOptions & {regionCode: RegionCode; formatStrategy: PhoneNumberFormat; formatCountryCodeStyle: string;}} FormatOptionsTel
 */
/**
 * @customElement lion-input-tel
 */
export class LionInputTel extends LionInputTel_base {
    /**
     * @configure LitElement
     */
    static properties: {
        allowedRegions: {
            type: ArrayConstructor;
        };
        formatStrategy: {
            type: StringConstructor;
            attribute: string;
        };
        formatCountryCodeStyle: {
            type: StringConstructor;
            attribute: string;
        };
        activeRegion: {
            type: StringConstructor;
        };
        preferredRegions: {
            type: ArrayConstructor;
        };
        _phoneUtil: {
            type: ObjectConstructor;
            state: boolean;
        };
    };
    static localizeNamespaces: import("../../localize/types/LocalizeMixinTypes.js").NamespaceObject[];
    readonly set activeRegion(arg: import("../types/index.js").RegionCode | undefined);
    /**
     * Currently active region based on:
     * 1. allowed regions: get the region from configured allowed regions (if one entry)
     * 2. user input: try to derive active region from user input
     * 3. locale: try to get the region from locale (`html[lang]` attribute)
     * @readonly
     * @property {RegionCode|undefined}activeRegion
     */
    readonly get activeRegion(): import("../types/index.js").RegionCode | undefined;
    readonly set activePhoneNumberType(arg: any);
    /**
     * Type of phone number, derived from textbox value. Enum with values:
     * -'fixed-line'
     * -'fixed-line-or-mobile'
     * -'mobile'
     * -'pager'
     * -'personal-number'
     * -'premium-rate'
     * -'shared-cost'
     * -'toll-free'
     * -'uan'
     * -'voip'
     * -'unknown'
     * See https://www.npmjs.com/package/awesome-phonenumber
     * @readonly
     * @property {PhoneNumberTypes|undefined} activePhoneNumberTypes
     */
    readonly get activePhoneNumberType(): any;
    /**
     * Protected setter for activeRegion, only meant for subclassers
     * @protected
     * @param {RegionCode|undefined} newValue
     */
    protected _setActiveRegion(newValue: RegionCode | undefined): void;
    __activeRegion: import("../types/index.js").RegionCode | undefined;
    /**
     * Used for rendering the region/country list
     * @property _allowedOrAllRegions
     * @type {RegionCode[]}
     */
    get _allowedOrAllRegions(): import("../types/index.js").RegionCode[];
    /**
     * @property _phoneUtilLoadComplete
     * @protected
     * @type {Promise<PhoneNumber>}
     */
    protected get _phoneUtilLoadComplete(): Promise<PhoneNumber>;
    /**
     * Set a default name for this field, so that validation feedback will be always
     * accessible and linguistically correct
     * @configure FormControlMixin
     */
    get fieldName(): string;
    /**
     * Determines what the formatter output should look like.
     * Formatting strategies as provided by google-libphonenumber
     * See: https://www.npmjs.com/package/google-libphonenumber
     * @type {PhoneNumberFormat}
     */
    formatStrategy: PhoneNumberFormat;
    /**
     * Extra styling of the format strategy
     * default | parentheses
     * @type {string}
     */
    formatCountryCodeStyle: string;
    /**
     * The regions that should be considered when international phone numbers are detected.
     * (when not configured, all regions worldwide will be considered)
     * @type {RegionCode[]}
     */
    allowedRegions: RegionCode[];
    /**
     * Regions that will be shown on top of the dropdown
     * @type {RegionCode[]}
     */
    preferredRegions: RegionCode[];
    /** @private */
    private __isPhoneNumberValidatorInstance;
    /**
     * @protected
     * @type {AwesomePhoneNumber|null}
     */
    protected _phoneUtil: AwesomePhoneNumber | null;
    __isUpdatingRegionWhileFocused: boolean | undefined;
    /**
     * @protected
     * @type {RegionCode}
     */
    protected _langIso: import("../types/index.js").RegionCode | undefined;
    /**
     * @configure FormatMixin
     * @param {string} modelValue
     * @returns {string}
     */
    formatter(modelValue: string): string;
    /**
     * @configure FormatMixin
     * @param {string} viewValue a phone number without (or with) country code, like '06 12345678'
     * @returns {string} a trimmed phone number with country code, like '+31612345678'
     */
    parser(viewValue: string): string;
    /**
     * @configure FormatMixin
     * @param {string} viewValue
     * @param {object} options
     * @param {string} options.prevViewValue
     * @param {number} options.currentCaretIndex
     * @returns {{ viewValue: string; caretIndex: number; } | undefined }
     */
    preprocessor(viewValue: string, { currentCaretIndex, prevViewValue }: {
        prevViewValue: string;
        currentCaretIndex: number;
    }): {
        viewValue: string;
        caretIndex: number;
    } | undefined;
    /**
     * @protected
     */
    protected _onPhoneNumberUtilReady(): void;
    /**
     * @private
     */
    private __calculateActiveRegion;
}
export type RegionCode = import('../types/index.js').RegionCode;
export type PhoneNumberFormat = import('awesome-phonenumber').PhoneNumberFormat;
export type PhoneNumberTypes = import('awesome-phonenumber').PhoneNumberTypes;
export type FormatOptions = import('../../form-core/types/FormatMixinTypes.js').FormatOptions;
export type AwesomePhoneNumber = any & typeof import("awesome-phonenumber");
export type FormatOptionsTel = FormatOptions & {
    regionCode: RegionCode;
    formatStrategy: PhoneNumberFormat;
    formatCountryCodeStyle: string;
};
import { LionInput } from "../../../exports/input.js";
import { PhoneNumber } from "./validators.js";
export {};
//# sourceMappingURL=LionInputTel.d.ts.map