export * from '@llamaindex/core/tools';
import { JSONValue } from '@llamaindex/core/global';
import { ToolMetadata, BaseTool } from '@llamaindex/core/llms';
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<JSONValue>;
}

export { type QueryEngineParam, QueryEngineTool, type QueryEngineToolParams };
