/**
 * @fileoverview openchargemap_find_stations — find EV charging stations from the global Open
 * Charge Map registry near a point or within a bounding box, with connector/power/network/usage/
 * status filters. Coordinate-native; place names geocode via openstreetmap_geocode first.
 * @module mcp-server/tools/definitions/find-stations.tool
 */
import { z } from '@cyanheads/mcp-ts-core';
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
export declare const findStations: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
    latitude: z.ZodOptional<z.ZodNumber>;
    longitude: z.ZodOptional<z.ZodNumber>;
    distance: z.ZodDefault<z.ZodNumber>;
    distanceUnit: z.ZodDefault<z.ZodEnum<{
        KM: "KM";
        Miles: "Miles";
    }>>;
    boundingbox: z.ZodOptional<z.ZodObject<{
        sw_lat: z.ZodNumber;
        sw_lng: z.ZodNumber;
        ne_lat: z.ZodNumber;
        ne_lng: z.ZodNumber;
    }, z.core.$strip>>;
    countrycode: z.ZodOptional<z.ZodString>;
    connectiontypeid: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodArray<z.ZodNumber>]>>;
    minpowerkw: z.ZodOptional<z.ZodNumber>;
    operatorid: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodArray<z.ZodNumber>]>>;
    usagetypeid: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodArray<z.ZodNumber>]>>;
    levelid: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodArray<z.ZodNumber>]>>;
    statustypeid: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodArray<z.ZodNumber>]>>;
    minchargepoints: z.ZodOptional<z.ZodNumber>;
    maxresults: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>, z.ZodObject<{
    stations: z.ZodArray<z.ZodObject<{
        id: z.ZodNumber;
        uuid: z.ZodString;
        title: z.ZodString;
        address: z.ZodObject<{
            line1: z.ZodOptional<z.ZodString>;
            town: z.ZodOptional<z.ZodString>;
            stateOrProvince: z.ZodOptional<z.ZodString>;
            postcode: z.ZodOptional<z.ZodString>;
            country: z.ZodOptional<z.ZodString>;
            countryCode: z.ZodOptional<z.ZodString>;
            latitude: z.ZodNumber;
            longitude: z.ZodNumber;
            accessComments: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>;
        distance: z.ZodOptional<z.ZodNumber>;
        distanceUnit: z.ZodOptional<z.ZodEnum<{
            KM: "KM";
            Miles: "Miles";
        }>>;
        operator: z.ZodOptional<z.ZodString>;
        operatorId: z.ZodOptional<z.ZodNumber>;
        usageType: z.ZodOptional<z.ZodString>;
        isPayAtLocation: z.ZodOptional<z.ZodBoolean>;
        isMembershipRequired: z.ZodOptional<z.ZodBoolean>;
        isAccessKeyRequired: z.ZodOptional<z.ZodBoolean>;
        numberOfPoints: z.ZodOptional<z.ZodNumber>;
        status: z.ZodOptional<z.ZodString>;
        isOperational: z.ZodOptional<z.ZodBoolean>;
        dateLastVerified: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        isRecentlyVerified: z.ZodOptional<z.ZodBoolean>;
        connections: z.ZodArray<z.ZodObject<{
            connectionTypeId: z.ZodOptional<z.ZodNumber>;
            connectionType: z.ZodOptional<z.ZodString>;
            level: z.ZodOptional<z.ZodString>;
            levelId: z.ZodOptional<z.ZodNumber>;
            powerKW: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
            currentType: z.ZodOptional<z.ZodString>;
            amps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
            voltage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
            quantity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        }, z.core.$strip>>;
        dataProvider: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    searchSummary: z.ZodString;
    attribution: z.ZodString;
}, z.core.$strip>, readonly [{
    readonly reason: "invalid_location";
    readonly code: JsonRpcErrorCode.InvalidParams;
    readonly when: "Neither a center (latitude+longitude) nor a boundingbox was provided, or both were.";
    readonly recovery: "Provide either latitude + longitude (+ optional distance), or a boundingbox — exactly one. Geocode a place name with openstreetmap_geocode to obtain coordinates.";
}, {
    readonly reason: "no_stations";
    readonly code: JsonRpcErrorCode.NotFound;
    readonly when: "The search and filters returned zero stations.";
    readonly recovery: "Widen the distance/bounding box, relax filters (drop minpowerkw or connectiontypeid), or remove countrycode. Verify the coordinates are on land in a covered region.";
}, {
    readonly reason: "upstream_unavailable";
    readonly code: JsonRpcErrorCode.ServiceUnavailable;
    readonly retryable: true;
    readonly when: "OCM returned a non-2xx response or timed out.";
    readonly recovery: "Retry after a short delay. If it persists, OCM may be rate-limiting or down — reduce call frequency.";
}, {
    readonly reason: "auth_failed";
    readonly code: JsonRpcErrorCode.Unauthorized;
    readonly when: "OCM returned HTTP 403 — the API key is missing or invalid.";
    readonly recovery: "Set a valid OPENCHARGEMAP_API_KEY (free signup at openchargemap.org). This is a server configuration issue, not an input error.";
}], {
    readonly totalCount: z.ZodNumber;
    readonly truncated: z.ZodOptional<z.ZodBoolean>;
    readonly shown: z.ZodOptional<z.ZodNumber>;
    readonly cap: z.ZodOptional<z.ZodNumber>;
}>;
//# sourceMappingURL=find-stations.tool.d.ts.map