interface TypePattern { nationalNumberPattern: string; possibleLengths: number[]; } interface FormatRule { pattern: string; format: string; nationalPrefixFormattingRule?: string; intlFormat?: string; leadingDigits?: string[]; } interface CountryMetadata { region: string; callingCode: string; nationalNumberPattern: string; possibleLengths: number[]; types?: { MOBILE?: TypePattern; FIXED?: TypePattern; TOLL_FREE?: TypePattern; PREMIUM_RATE?: TypePattern; SHARED_COST?: TypePattern; PERSONAL_NUMBER?: TypePattern; VOIP?: TypePattern; PAGER?: TypePattern; UAN?: TypePattern; VOICEMAIL?: TypePattern; }; nationalPrefix?: string; formats?: FormatRule[]; } interface Metadata { [region: string]: CountryMetadata; } declare const setup: (config: { metadata: Metadata; }) => void; declare const getMetadata: () => Metadata; declare const getCountries: () => string[]; declare const getCountryCallingCode: (country: string) => number | undefined; declare const isSupportedCountry: (country: string) => boolean; export { type CountryMetadata, type FormatRule, type Metadata, type TypePattern, getCountries, getCountryCallingCode, getMetadata, isSupportedCountry, setup };