interface ReachabilityResult { reachable: boolean | null; lineType: 'MOBILE' | 'FIXED' | 'VOIP' | 'UNKNOWN'; carrierName: string | null; ported: boolean | null; roaming: boolean | null; callerName: string | null; riskScore: number | null; } interface IReachabilityProvider { lookup(phoneNumber: PhoneNumber): Promise; } declare const configure: (config: { provider: IReachabilityProvider | null; }) => void; declare const getProvider: () => IReachabilityProvider | null; declare enum ParseErrorCode { INVALID_COUNTRY_CODE = "INVALID_COUNTRY_CODE", TOO_SHORT = "TOO_SHORT", TOO_LONG = "TOO_LONG", NOT_A_NUMBER = "NOT_A_NUMBER" } interface PhoneNumber { e164: string; countryCode: number; region: string | null; nationalNumber: string; type: 'MOBILE' | 'FIXED' | 'FIXED_LINE_OR_MOBILE' | 'TOLL_FREE' | 'PREMIUM_RATE' | 'SHARED_COST' | 'PERSONAL_NUMBER' | 'VOIP' | 'PAGER' | 'UAN' | 'VOICEMAIL' | 'UNKNOWN'; } type ParseResult = { success: true; data: PhoneNumber; } | { success: false; error: ParseErrorCode; message: string; }; type AsyncParseResult = { success: true; data: PhoneNumber; reachability: ReachabilityResult | null; } | { success: false; error: ParseErrorCode; message: string; }; export { type AsyncParseResult as A, type IReachabilityProvider as I, type ParseResult as P, type ReachabilityResult as R, type PhoneNumber as a, ParseErrorCode as b, configure as c, getProvider as g };