import { GeneratedResponse } from '../../helper/generated-response';
import { SimpleMethodValueResult } from '../../helper/method-value-result';
import { ObjectNode } from '../../models/object-node.model';
import { ActionEntityService } from '../../services/action-entity/action-entity.service';
import { CurrentContext } from '../../services/application.service';
import { ServerConfigService } from '../server-config/server-config.service';
import { MethodValueSimpleJsonResult } from './../../helper/method-value-result';
import { TransientEntityService } from './../../services/transient-entity/transient-entity.service';
import { CachedResultService } from './../cached-result/cached-result.service';
export declare class GeocoderLocation extends MethodValueSimpleJsonResult {
    latitude: number;
    longitude: number;
}
export declare class GeocoderResult extends SimpleMethodValueResult<GeocoderLocation> {
    protected buildDisplayedValue(jsonResult: GeocoderLocation): string;
}
export interface IGeocoderService {
    getAddressLocation(addressUriEncoded: string, isAddressUriEncoded: boolean, ctx: CurrentContext): Promise<GeocoderLocation>;
    getName(): string;
}
export declare class GeocoderService {
    private serverConfigService;
    private actionEntityService;
    private cachedResultService;
    private transientEntityService;
    services: IGeocoderService[];
    constructor(serverConfigService: ServerConfigService, actionEntityService: ActionEntityService, cachedResultService: CachedResultService, transientEntityService: TransientEntityService);
    registerService(geocoderService: IGeocoderService): void;
    completeWebSiteViewTypeNode(objectNode: ObjectNode, ctx: CurrentContext): Promise<void>;
    geocodeTenantNodeFromPost(objectNode: ObjectNode, args: {
        address: string;
    }, ctx: CurrentContext): Promise<GeocoderResult>;
    private getAddressLocation;
    geocodeTenantNode(entity: ObjectNode, args: {
        0?: string;
        1?: string;
        2?: string;
    }, ctx: CurrentContext): Promise<GeneratedResponse>;
}
