import React from 'react';
import { SpatialJoinComponent } from '@openassistant/tables';
import { Datasets } from '@kepler.gl/table';
import { Layer } from '@kepler.gl/layers';
import { AiAssistantState } from '../reducers';
export declare function getGeoTools(aiAssistant: AiAssistantState, datasets: Datasets, layers: Layer[], layerData: any[]): {
    classifyTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").DataClassifyFunctionArgs, import("@openassistant/geoda").DataClassifyLlmResult, import("@openassistant/geoda").DataClassifyAdditionalData, import("@openassistant/geoda").DataClassifyFunctionContext>;
    weightsTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").SpatialWeightsFunctionArgs, import("@openassistant/geoda").SpatialWeightsLlmResult, import("@openassistant/geoda").SpatialWeightsAdditionalData, import("@openassistant/geoda").SpatialWeightsFunctionContext>;
    globalMoranTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").MoranScatterPlotFunctionArgs, import("@openassistant/geoda").MoranScatterPlotLlmResult, import("@openassistant/geoda").MoranScatterPlotAdditionalData, import("@openassistant/geoda").MoranScatterPlotFunctionContext>;
    regressionTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").SpatialRegressionFunctionArgs, import("@openassistant/geoda").SpatialRegressionLlmResult, import("@openassistant/geoda").SpatialRegressionAdditionalData, import("@openassistant/geoda").SpatialRegressionFunctionContext>;
    lisaTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").LisaFunctionArgs, import("@openassistant/geoda").LisaLlmResult, import("@openassistant/geoda").LisaAdditionalData, import("@openassistant/geoda").LisaFunctionContext>;
    spatialJoinTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").SpatialJoinFunctionArgs, import("@openassistant/geoda").SpatialJoinLlmResult, import("@openassistant/geoda").SpatialJoinAdditionalData, import("@openassistant/geoda").SpatialJoinFunctionContext>;
    spatialFilterTool: {
        context: {
            getValues: (datasetName: string, variableName: string) => Promise<number[]>;
            getGeometries: (datasetName: string) => Promise<import("@geoda/core").SpatialGeometry>;
        };
        onToolCompleted: (toolName: string, result: unknown) => void;
        component: typeof SpatialJoinComponent;
        description: string;
        parameters: import("@openassistant/geoda").SpatialJoinFunctionArgs;
        execute: import("@openassistant/utils").ExecuteFunction<import("@openassistant/geoda").SpatialJoinFunctionArgs, import("@openassistant/geoda").SpatialJoinLlmResult, import("@openassistant/geoda").SpatialJoinAdditionalData, import("@openassistant/geoda").SpatialJoinFunctionContext>;
    };
    gridTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").GridFunctionArgs, import("@openassistant/geoda").GridLlmResult, import("@openassistant/geoda").GridAdditionalData, import("@openassistant/geoda").SpatialToolContext>;
    bufferTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").BufferFunctionArgs, import("@openassistant/geoda").BufferLlmResult, import("@openassistant/geoda").BufferAdditionalData, import("@openassistant/geoda").SpatialToolContext>;
    centroidTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").CentroidFunctionArgs, import("@openassistant/geoda").CentroidLlmResult, import("@openassistant/geoda").CentroidAdditionalData, import("@openassistant/geoda").SpatialToolContext>;
    dissolveTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").DissolveFunctionArgs, import("@openassistant/geoda").DissolveLlmResult, import("@openassistant/geoda").DissolveAdditionalData, import("@openassistant/geoda").SpatialToolContext>;
    lengthTool: {
        context: {
            getGeometries: (datasetName: string) => Promise<import("@geoda/core").SpatialGeometry>;
        };
        description: string;
        parameters: import("zod").ZodObject<{
            geojson: import("zod").ZodOptional<import("zod").ZodString>;
            datasetName: import("zod").ZodOptional<import("zod").ZodString>;
            distanceUnit: import("zod").ZodDefault<import("zod").ZodEnum<["KM", "Mile"]>>;
        }, "strip", import("zod").ZodTypeAny, {
            distanceUnit: "KM" | "Mile";
            datasetName?: string | undefined;
            geojson?: string | undefined;
        }, {
            datasetName?: string | undefined;
            geojson?: string | undefined;
            distanceUnit?: "KM" | "Mile" | undefined;
        }>;
        execute: import("@openassistant/utils").ExecuteFunction<import("zod").ZodObject<{
            geojson: import("zod").ZodOptional<import("zod").ZodString>;
            datasetName: import("zod").ZodOptional<import("zod").ZodString>;
            distanceUnit: import("zod").ZodDefault<import("zod").ZodEnum<["KM", "Mile"]>>;
        }, "strip", import("zod").ZodTypeAny, {
            distanceUnit: "KM" | "Mile";
            datasetName?: string | undefined;
            geojson?: string | undefined;
        }, {
            datasetName?: string | undefined;
            geojson?: string | undefined;
            distanceUnit?: "KM" | "Mile" | undefined;
        }>, {
            success: boolean;
            result: string;
            lengths: number[];
            distanceUnit: "KM" | "Mile";
        }, never, {
            getGeometries: () => void;
        }>;
        component?: React.ElementType;
        onToolCompleted?: import("@openassistant/utils").OnToolCompleted;
    };
    areaTool: {
        context: {
            getGeometries: (datasetName: string) => Promise<import("@geoda/core").SpatialGeometry>;
        };
        description: string;
        parameters: import("@openassistant/geoda").AreaFunctionArgs;
        execute: import("@openassistant/utils").ExecuteFunction<import("@openassistant/geoda").AreaFunctionArgs, import("@openassistant/geoda").AreaLlmResult, import("@openassistant/geoda").AreaAdditionalData, import("@openassistant/geoda").SpatialToolContext>;
        component?: React.ElementType;
        onToolCompleted?: import("@openassistant/utils").OnToolCompleted;
    };
    perimeterTool: {
        context: {
            getGeometries: (datasetName: string) => Promise<import("@geoda/core").SpatialGeometry>;
        };
        description: string;
        parameters: import("@openassistant/geoda").PerimeterFunctionArgs;
        execute: import("@openassistant/utils").ExecuteFunction<import("@openassistant/geoda").PerimeterFunctionArgs, import("@openassistant/geoda").PerimeterLlmResult, import("@openassistant/geoda").PerimeterAdditionalData, import("@openassistant/geoda").SpatialToolContext>;
        component?: React.ElementType;
        onToolCompleted?: import("@openassistant/utils").OnToolCompleted;
    };
    getUsStateTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/osm").GetUsStateGeojsonFunctionArgs, import("@openassistant/osm").GetUsStateGeojsonLlmResult, import("@openassistant/osm").GetUsStateGeojsonAdditionalData, object>;
    getUsCountyTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/osm").GetUsCountyGeojsonFunctionArgs, import("@openassistant/osm").GetUsCountyGeojsonLlmResult, import("@openassistant/osm").GetUsCountyGeojsonAdditionalData, object>;
    getUsZipcodeTool: import("@openassistant/utils").ExtendedTool<import("@openassistant/osm").GetUsZipcodeGeojsonFunctionArgs, import("@openassistant/osm").GetUsZipcodeGeojsonLlmResult, import("@openassistant/osm").GetUsZipcodeGeojsonAdditionalData, object>;
    queryUSZipcodes: import("@openassistant/utils").ExtendedTool<import("@openassistant/osm").QueryZipcodeFunctionArgs, import("@openassistant/osm").QueryZipcodeLlmResult, import("@openassistant/osm").QueryZipcodeAdditionalData, object>;
    geocoding: import("@openassistant/utils").ExtendedTool<import("@openassistant/osm").GeocodingFunctionArgs, import("@openassistant/osm").GeocodingLlmResult, import("@openassistant/osm").GeocodingAdditionalData, object>;
    routing: import("@openassistant/utils").ExtendedTool<import("@openassistant/osm").RoutingFunctionArgs, import("@openassistant/osm").RoutingLlmResult, import("@openassistant/osm").RoutingAdditionalData, import("@openassistant/osm").MapboxToolContext>;
    isochrone: import("@openassistant/utils").ExtendedTool<import("@openassistant/osm").IsochroneFunctionArgs, import("@openassistant/osm").IsochroneLlmResult, import("@openassistant/osm").IsochroneAdditionalData, import("@openassistant/osm").MapboxToolContext>;
    roads: {
        context: {
            getGeometries: (datasetName: string) => Promise<import("@geoda/core").SpatialGeometry>;
        };
        onToolCompleted: (toolName: string, result: unknown) => void;
        description: string;
        parameters: import("@openassistant/osm").RoadsFunctionArgs;
        execute: import("@openassistant/utils").ExecuteFunction<import("@openassistant/osm").RoadsFunctionArgs, import("@openassistant/osm").RoadsLlmResult, import("@openassistant/osm").RoadsAdditionalData, import("@openassistant/osm").OsmToolContext>;
        component?: React.ElementType;
    };
    standardizeVariable: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").StandardizeVariableToolArgs, import("@openassistant/geoda").StandardizeVariableToolLlmResult, import("@openassistant/geoda").StandardizeVariableToolAdditionalData, import("@openassistant/geoda").StandardizeVariableToolContext>;
    thiessenPolygons: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").ThiessenPolygonsArgs, import("@openassistant/geoda").ThiessenPolygonsLlmResult, import("@openassistant/geoda").ThiessenPolygonsAdditionalData, import("@openassistant/geoda").SpatialToolContext>;
    minimumSpanningTree: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").MinimumSpanningTreeArgs, import("@openassistant/geoda").MinimumSpanningTreeLlmResult, import("@openassistant/geoda").MinimumSpanningTreeAdditionalData, import("@openassistant/geoda").SpatialToolContext>;
    cartogram: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").CartogramFunctionArgs, import("@openassistant/geoda").CartogramLlmResult, import("@openassistant/geoda").CartogramAdditionalData, import("@openassistant/geoda").SpatialToolContext>;
    rate: import("@openassistant/utils").ExtendedTool<import("@openassistant/geoda").RateFunctionArgs, import("@openassistant/geoda").RateLlmResult, import("@openassistant/geoda").RateAdditionalData, import("@openassistant/geoda").RateContext>;
};
