import { Address, AddressSummary } from './address';
import { GoogleFindResponse, GoogleRetrieveResponse } from './address-lookup-google';
import { LoqateFindResponse, LoqateRetrieveResponse } from './address-lookup-loqate';
export declare abstract class FindResponse {
    abstract mapTo<TTo>(mapper: FindResponseMapper<TTo>): TTo;
}
export declare abstract class RetrieveResponse {
    abstract mapTo<TTo>(mapper: RetrieveResponseMapper<TTo>): TTo;
}
export interface ResponseMapper<TTo> {
    mapLoqate(response: LoqateFindResponse): TTo;
    mapGoogle(response: GoogleFindResponse): TTo;
}
export interface FindResponseMapper<TTo> {
    mapLoqate(response: LoqateFindResponse): TTo;
    mapGoogle(response: GoogleFindResponse): TTo;
}
export interface RetrieveResponseMapper<TTo> {
    mapLoqate(response: LoqateRetrieveResponse): TTo;
    mapGoogle(response: GoogleRetrieveResponse): TTo;
}
export declare class AddressLookupToAddressSummary implements FindResponseMapper<AddressSummary> {
    mapLoqate(response: LoqateFindResponse): AddressSummary;
    mapGoogle(response: GoogleFindResponse): AddressSummary;
    private formatHTMLDescription;
}
export declare class AddressRetrieveToAddress implements RetrieveResponseMapper<Address> {
    mapLoqate(response: LoqateRetrieveResponse): Address;
    mapGoogle(response: GoogleRetrieveResponse): Address;
}
//# sourceMappingURL=address-lookup-response-mapper.d.ts.map