export declare enum NodeRelationship { SOURCE = "SOURCE", PREVIOUS = "PREVIOUS", NEXT = "NEXT", PARENT = "PARENT", CHILD = "CHILD" } export declare enum ObjectType { TEXT = "TEXT", IMAGE = "IMAGE", INDEX = "INDEX", DOCUMENT = "DOCUMENT", IMAGE_DOCUMENT = "IMAGE_DOCUMENT" } export declare enum MetadataMode { ALL = "ALL", EMBED = "EMBED", LLM = "LLM", NONE = "NONE" } export type Metadata = Record; export interface RelatedNodeInfo { nodeId: string; nodeType?: ObjectType; metadata: T; hash?: string; } export type RelatedNodeType = RelatedNodeInfo | RelatedNodeInfo[]; export type BaseNodeParams = { id_?: string; metadata?: T; excludedEmbedMetadataKeys?: string[]; excludedLlmMetadataKeys?: string[]; relationships?: Partial>>; hash?: string; embedding?: number[]; }; /** * Generic abstract class for retrievable nodes */ export declare abstract class BaseNode { /** * The unique ID of the Node/Document. The trailing underscore is here * to avoid collisions with the id keyword in Python. * * Set to a UUID by default. */ id_: string; embedding?: number[]; metadata: T; excludedEmbedMetadataKeys: string[]; excludedLlmMetadataKeys: string[]; relationships: Partial>>; accessor hash: string; protected constructor(init?: BaseNodeParams); abstract get type(): ObjectType; abstract getContent(metadataMode: MetadataMode): string; abstract getMetadataStr(metadataMode: MetadataMode): string; abstract setContent(value: unknown): void; get sourceNode(): RelatedNodeInfo | undefined; get prevNode(): RelatedNodeInfo | undefined; get nextNode(): RelatedNodeInfo | undefined; get parentNode(): RelatedNodeInfo | undefined; get childNodes(): RelatedNodeInfo[] | undefined; abstract generateHash(): string; getEmbedding(): number[]; asRelatedNodeInfo(): RelatedNodeInfo; /** * Called by built in JSON.stringify (see https://javascript.info/json) * Properties are read-only as they are not deep-cloned (not necessary for stringification). * @see toMutableJSON - use to return a mutable JSON instead */ toJSON(): Record; clone(): BaseNode; /** * Converts the object to a JSON representation. * Properties can be safely modified as a deep clone of the properties are created. * @return {Record} - The JSON representation of the object. */ toMutableJSON(): Record; } export type TextNodeParams = BaseNodeParams & { text?: string; textTemplate?: string; startCharIdx?: number; endCharIdx?: number; metadataSeparator?: string; }; /** * TextNode is the default node type for text. Most common node type in LlamaIndex.TS */ export declare class TextNode extends BaseNode { text: string; textTemplate: string; startCharIdx?: number; endCharIdx?: number; metadataSeparator: string; constructor(init?: TextNodeParams); /** * Generate a hash of the text node. * The ID is not part of the hash as it can change independent of content. * @returns */ generateHash(): string; get type(): ObjectType; getContent(metadataMode?: MetadataMode): string; getMetadataStr(metadataMode: MetadataMode): string; setContent(value: string): void; getNodeInfo(): { start: number | undefined; end: number | undefined; }; getText(): string; } export type IndexNodeParams = TextNodeParams & { indexId: string; }; export declare class IndexNode extends TextNode { indexId: string; constructor(init?: IndexNodeParams); get type(): ObjectType; } /** * A document is just a special text node with a docId. */ export declare class Document extends TextNode { constructor(init?: TextNodeParams); get type(): ObjectType; } export declare function jsonToNode(json: any, type?: ObjectType): TextNode; export type ImageType = string | Blob | URL; export type ImageNodeParams = TextNodeParams & { image: ImageType; }; export declare class ImageNode extends TextNode { image: ImageType; constructor(init: ImageNodeParams); get type(): ObjectType; getUrl(): URL; private generateImageHash; generateHash(): string; } export declare class ImageDocument extends ImageNode { constructor(init: ImageNodeParams); get type(): ObjectType; } /** * A node with a similarity score */ export interface NodeWithScore { node: BaseNode; score?: number; } export declare enum ModalityType { TEXT = "TEXT", IMAGE = "IMAGE" } type NodesByType = { [P in ModalityType]?: BaseNode[]; }; export declare function splitNodesByType(nodes: BaseNode[]): NodesByType; export {};