import { LifeCycleObserver, Provider } from '@loopback/core';
import { juggler } from '@loopback/repository';
import { CurrentContext } from '../../../services';
import { GeocoderLocation, IGeocoderService } from '../geocoder.service';
import { ServerConfigService } from './../../server-config/server-config.service';
export declare class GeocoderPositionStackDataSource extends juggler.DataSource implements LifeCycleObserver {
    static dataSourceName: string;
    static readonly defaultConfig: {
        name: string;
        connector: string;
        options: {
            headers: {
                accept: string;
                'content-type': string;
            };
        };
        operations: {
            template: {
                method: string;
                url: string;
            };
            functions: {
                geocode: string[];
            };
        }[];
    };
    constructor(dsConfig?: object);
}
export interface GeocoderPositionStackRepository {
    geocode(apiKey: string, address: string): Promise<{
        data: [
            {
                latitude: number;
                longitude: number;
                type: string;
                name: string;
                number: string;
                postal_code: string;
                street: string;
                confidence: number;
                region: string;
                region_code: string;
                locality: string;
                administrative_area: string;
                neighbourhood: string;
                country: string;
                country_code: string;
                continent: string;
                label: string;
            }
        ];
    }>;
}
export declare class GeocoderPositionStackRepositoryProvider implements Provider<GeocoderPositionStackRepository> {
    protected dataSource: GeocoderPositionStackDataSource;
    constructor(dataSource?: GeocoderPositionStackDataSource);
    value(): Promise<GeocoderPositionStackRepository>;
}
export declare class GeocoderPositionStackService implements IGeocoderService {
    private geocoderRepository;
    private serverConfigService;
    constructor(geocoderRepository: GeocoderPositionStackRepository, serverConfigService: ServerConfigService);
    getName(): string;
    getAddressLocation(address: string, isAddressUriEncoded: boolean | undefined, ctx: CurrentContext): Promise<GeocoderLocation>;
}
