export interface DocumentInput< // eslint-disable-next-line @typescript-eslint/no-explicit-any Metadata extends Record = Record > { pageContent: string; metadata?: Metadata; } /** * Interface for interacting with a document. */ export class Document< // eslint-disable-next-line @typescript-eslint/no-explicit-any Metadata extends Record = Record > implements DocumentInput { pageContent: string; metadata: Metadata; constructor(fields: DocumentInput) { this.pageContent = fields.pageContent ? fields.pageContent.toString() : this.pageContent; this.metadata = fields.metadata ?? ({} as Metadata); } }