import { CurrentWeatherDataData, OWMServiceOptions, CurrentWeatherDataResult, HourlyForecast4DaysData, OneCallResult, OneCallData, DailyForecast16DaysResult, ClimaticForeCast30DaysResult, DailyForecast16DaysData, ClimaticForeCast30DaysData, FiveDay3HourForecastData, FiveDay3HourForecastResult, HourlyForecast4DaysResult, AirPollutionCurrentData, AirPollutionResult, AirPollutionForecastData, AirPollutionHistoricalData } from "./types";
import { SetOptional } from "type-fest";
import { Params } from "@feathersjs/feathers";
export declare class Service {
    options: OWMServiceOptions;
    constructor(options: SetOptional<OWMServiceOptions, "v" | "lang" | "mode" | "units">);
    find(params: Params & {
        query: CurrentWeatherDataData & {
            endpoint: "weather";
        };
    }): Promise<CurrentWeatherDataResult>;
    find(params: Params & {
        query: OneCallData & {
            endpoint: "onecall";
        };
    }): Promise<OneCallResult>;
    find(params: Params & {
        query: FiveDay3HourForecastData & {
            endpoint: "forecast";
        };
    }): Promise<FiveDay3HourForecastResult>;
    find(params: Params & {
        query: HourlyForecast4DaysData & {
            endpoint: "forecast/hourly";
        };
    }): Promise<HourlyForecast4DaysResult>;
    find(params: Params & {
        query: DailyForecast16DaysData & {
            endpoint: "forecast/daily";
        };
    }): Promise<DailyForecast16DaysResult>;
    find(params: Params & {
        query: ClimaticForeCast30DaysData & {
            endpoint: "forecast/climate";
        };
    }): Promise<ClimaticForeCast30DaysResult>;
    find(params: Params & {
        query: AirPollutionCurrentData & {
            endpoint: "air_pollution";
        };
    }): Promise<AirPollutionResult>;
    find(params: Params & {
        query: AirPollutionForecastData & {
            endpoint: "air_pollution/forecast";
        };
    }): Promise<AirPollutionResult>;
    find(params: Params & {
        query: AirPollutionHistoricalData & {
            endpoint: "air_pollution/history";
        };
    }): Promise<AirPollutionResult>;
    create(data: CurrentWeatherDataData & {
        endpoint: "weather";
    }): Promise<CurrentWeatherDataResult>;
    create(data: OneCallData & {
        endpoint: "onecall";
    }): Promise<OneCallResult>;
    create(data: FiveDay3HourForecastData & {
        endpoint: "forecast";
    }): Promise<FiveDay3HourForecastResult>;
    create(data: HourlyForecast4DaysData & {
        endpoint: "forecast/hourly";
    }): Promise<HourlyForecast4DaysResult>;
    create(data: DailyForecast16DaysData & {
        endpoint: "forecast/daily";
    }): Promise<DailyForecast16DaysResult>;
    create(data: ClimaticForeCast30DaysData & {
        endpoint: "forecast/climate";
    }): Promise<ClimaticForeCast30DaysResult>;
    create(data: AirPollutionCurrentData & {
        endpoint: "air_pollution";
    }): Promise<AirPollutionResult>;
    create(data: AirPollutionForecastData & {
        endpoint: "air_pollution/forecast";
    }): Promise<AirPollutionResult>;
    create(data: AirPollutionHistoricalData & {
        endpoint: "air_pollution/history";
    }): Promise<AirPollutionResult>;
    private composeSearchParamsFromData;
    private getUrl;
    private makeRequest;
    currentWeatherData(data: CurrentWeatherDataData): Promise<CurrentWeatherDataResult>;
    oneCall(data: OneCallData): Promise<OneCallResult>;
    fiveDay3HourForecast(data: FiveDay3HourForecastData): Promise<FiveDay3HourForecastResult>;
    hourlyForecast4Days(data: HourlyForecast4DaysData): Promise<HourlyForecast4DaysResult>;
    dailyForecast16Days(data: DailyForecast16DaysData): Promise<DailyForecast16DaysResult>;
    climaticForecast30Days(data: ClimaticForeCast30DaysData): Promise<ClimaticForeCast30DaysResult>;
    airPollutionCurrent(data: AirPollutionCurrentData): Promise<AirPollutionResult>;
    airPollutionForecast(data: AirPollutionForecastData): Promise<AirPollutionResult>;
    airPollutionHistorical(data: AirPollutionHistoricalData): Promise<AirPollutionResult>;
}
