import type { BaseNode, Metadata } from "../Node.js"; import { TextNode } from "../Node.js"; import type { BaseRetriever } from "../Retriever.js"; import type { MessageContent } from "../llm/index.js"; import type { BaseTool } from "../types.js"; export declare abstract class BaseObjectNodeMapping { abstract fromObjects(objs: OT[], ...args: any[]): BaseObjectNodeMapping; abstract objNodeMapping(): Record; abstract toNode(obj: any): TextNode; validateObject(obj: any): void; addObj(obj: any): void; abstract _addObj(obj: any): void; toNodes(objs: any[]): TextNode[]; abstract _fromNode(node: BaseNode): any; fromNode(node: BaseNode): any; abstract persist(persistDir: string, objNodeMappingFilename: string): void; } type QueryType = MessageContent; export declare class ObjectRetriever { _retriever: BaseRetriever; _objectNodeMapping: BaseObjectNodeMapping; constructor(retriever: BaseRetriever, objectNodeMapping: BaseObjectNodeMapping); get retriever(): BaseRetriever; retrieve(strOrQueryBundle: QueryType): Promise; } export declare class SimpleToolNodeMapping extends BaseObjectNodeMapping { private _tools; private constructor(); objNodeMapping(): Record; toNode(tool: BaseTool): TextNode; _addObj(tool: BaseTool): void; _fromNode(node: BaseNode): BaseTool; persist(persistDir: string, objNodeMappingFilename: string): void; toNodes(objs: BaseTool[]): TextNode[]; addObj(obj: BaseTool): void; fromNode(node: BaseNode): BaseTool; static fromObjects(objs: any, ...args: any[]): BaseObjectNodeMapping; fromObjects(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): Promise; insertObject(obj: any): Promise; get tools(): Record; asRetriever(kwargs: any): Promise>; asNodeRetriever(kwargs: any): any; } export {};