import type { BaseTool } from "@llamaindex/core/llms";
import { BaseObjectNodeMapping, ObjectRetriever } from "@llamaindex/core/objects";
import type { BaseNode, Metadata } from "@llamaindex/core/schema";
import { TextNode } from "@llamaindex/core/schema";
export declare class SimpleToolNodeMapping extends BaseObjectNodeMapping {
    private _tools;
    private constructor();
    objNodeMapping(): Record<any, any>;
    toNode(tool: BaseTool): TextNode;
    _addObj(tool: BaseTool): void;
    _fromNode(node: BaseNode): BaseTool;
    persist(persistDir: string, objNodeMappingFilename: string): void;
    toNodes(objs: BaseTool[]): TextNode<Metadata>[];
    addObj(obj: BaseTool): void;
    fromNode(node: BaseNode): BaseTool;
    static fromObjects(objs: any, ...args: any[]): BaseObjectNodeMapping;
    fromObjects<OT>(objs: any, ...args: any[]): BaseObjectNodeMapping;
}
export declare class ObjectIndex {
    private _index;
    private _objectNodeMapping;
    private constructor();
    static fromObjects(objects: any, objectMapping: BaseObjectNodeMapping, indexCls: any, indexKwargs?: Record<string, any>): Promise<ObjectIndex>;
    insertObject(obj: any): Promise<void>;
    get tools(): Record<string, BaseTool>;
    asRetriever(kwargs: any): Promise<ObjectRetriever<any>>;
    asNodeRetriever(kwargs: any): any;
}
