import { BaseService } from "./BaseService"; import { AutocompleteSuggestion, ApiConfig, NormalizedSmartyAddressConfig } from "../interfaces"; export interface ApiErrorResponse { id?: number; name?: string; message?: string; fields?: string[]; } export interface FetchAutocompleteSuggestionsCallbacks { onSuccess: (suggestions: AutocompleteSuggestion[], searchString: string) => void; onError: (errorMessage: string) => void; } export declare const US_API_PARAM_MAP: { readonly maxResults: "max_results"; readonly includeOnlyLocalities: "include_only_cities"; readonly includeOnlyAdministrativeAreas: "include_only_states"; readonly includeOnlyPostalCodes: "include_only_zip_codes"; readonly excludeAdministrativeAreas: "exclude_states"; readonly preferLocalities: "prefer_cities"; readonly preferAdministrativeAreas: "prefer_states"; readonly preferPostalCodes: "prefer_zip_codes"; readonly preferRatio: "prefer_ratio"; readonly preferGeolocation: "prefer_geolocation"; readonly source: "source"; }; export declare const INTERNATIONAL_API_PARAM_MAP: { readonly maxResults: "max_results"; readonly includeOnlyLocalities: "include_only_locality"; readonly includeOnlyPostalCodes: "include_only_postal_code"; readonly preferGeolocation: "geolocation"; }; export declare const unknownError: { name: string; statusCode: number; message: string; }; export declare class ApiService extends BaseService { private embeddedKey; private autocompleteApiUrl; private internationalAutocompleteApiUrl; private apiParams; private staticCountry; private countrySelector; init(config: NormalizedSmartyAddressConfig): void; getCountry(): string; isInternational(country?: string): boolean; getApiConfig(): ApiConfig; fetchAutocompleteSuggestions(searchString: string, callbacks: FetchAutocompleteSuggestionsCallbacks): Promise; fetchSecondaryAutocompleteSuggestions(searchString: string, selectedAddress: AutocompleteSuggestion, callbacks: FetchAutocompleteSuggestionsCallbacks): Promise; private fetchWithCallbacks; fetchAutocompleteResults(apiConfig: ApiConfig, searchString: string, selectedAddress?: AutocompleteSuggestion | null, fetchFn?: typeof fetch): Promise; fetchInternationalAddressDetail(apiConfig: ApiConfig, selectedAddress: AutocompleteSuggestion, fetchFn?: typeof fetch): Promise; private fetchInternationalAutocompleteResults; private fetchAndNormalizeInternational; private buildUsRequestData; private buildInternationalRequestData; private addMappedParams; private normalizeUsCandidate; private normalizeInternationalCandidate; private parseResponse; private handleFetchError; getMatchingResult(primaryAutocompleteSuggestions: AutocompleteSuggestion[], selectedAddress: AutocompleteSuggestion): AutocompleteSuggestion | undefined; getApiError(statusCode: number, errorsResponse: { errors: ApiErrorResponse[]; }): { name: string; statusCode: number; message: string; }; }