export * from '@llamaindex/core/tools';
import * as _llamaindex_core_llms from '@llamaindex/core/llms';
import { ToolMetadata, BaseTool } from '@llamaindex/core/llms';
import * as _llamaindex_core_global from '@llamaindex/core/global';
import { BaseQueryEngine } from '@llamaindex/core/query-engine';
import { JSONSchemaType } from 'ajv';

type QueryEngineToolParams = {
    queryEngine: BaseQueryEngine;
    metadata?: ToolMetadata<JSONSchemaType<QueryEngineParam>> | undefined;
    includeSourceNodes?: boolean;
};
type QueryEngineParam = {
    query: string;
};
declare class QueryEngineTool implements BaseTool<QueryEngineParam> {
    private queryEngine;
    metadata: ToolMetadata<JSONSchemaType<QueryEngineParam>>;
    includeSourceNodes: boolean;
    constructor({ queryEngine, metadata, includeSourceNodes, }: QueryEngineToolParams);
    call({ query }: QueryEngineParam): Promise<string | number | boolean | _llamaindex_core_global.JSONObject | _llamaindex_core_global.JSONArray | {
        content: _llamaindex_core_llms.MessageContent;
    }>;
}

export { type QueryEngineParam, QueryEngineTool, type QueryEngineToolParams };
