import { DLogger } from "../DLogger"; import { INoteStore } from "../store"; import { BulkGetNoteMetaResp, BulkGetNoteResp, BulkWriteNotesOpts, BulkWriteNotesResp, DeleteNoteResp, DLink, EngineDeleteOpts, EngineWriteOptsV2, FindNotesMetaResp, FindNotesResp, GetNoteMetaResp, GetNoteResp, NoteChangeEntry, NoteProps, NotePropsMeta, QueryNotesMetaResp, QueryNotesOpts, QueryNotesResp, ReducedDEngine, RenameNoteOpts, RenameNoteResp, RenderNoteOpts, RenderNoteResp, RespV3, WriteNoteResp } from "../types"; import { DVault } from "../types/DVault"; import { FindNoteOpts } from "../types/FindNoteOpts"; /** * Abstract base class that contains common logic between DendronEngineV3 and * DendronEngineV3Web */ export declare abstract class EngineV3Base implements ReducedDEngine { protected noteStore: INoteStore; protected logger: DLogger; vaults: DVault[]; wsRoot: string; API_MAX_LIMIT: number; constructor(opts: { noteStore: INoteStore; logger: DLogger; vaults: DVault[]; wsRoot: string; }); /** * See {@link DEngine.getNote} */ getNote(id: string): Promise; /** * See {@link DEngine.getNoteMeta} */ getNoteMeta(id: string): Promise; /** * See {@link DEngine.bulkGetNotes} */ bulkGetNotes(ids: string[]): Promise; /** * See {@link DEngine.bulkGetNotesMeta} */ bulkGetNotesMeta(ids: string[]): Promise; /** * See {@link DEngine.findNotes} */ findNotes(opts: FindNoteOpts): Promise; /** * See {@link DEngine.findNotesMeta} */ findNotesMeta(opts: FindNoteOpts): Promise; /** * See {@link DEngine.bulkWriteNotes} */ bulkWriteNotes(opts: BulkWriteNotesOpts): Promise; /** * See {@link DEngine.deleteNote} */ deleteNote(id: string, opts?: EngineDeleteOpts): Promise; /** * See {@link DEngine.queryNotes} */ queryNotes(opts: QueryNotesOpts): Promise; /** * See {@link DEngine.queryNotesMeta} */ queryNotesMeta(opts: QueryNotesOpts): Promise; /** * See {@link DEngine.renameNote} */ abstract renameNote(opts: RenameNoteOpts): Promise; /** * See {@link DEngine.writeNote} */ abstract writeNote(note: NoteProps, opts?: EngineWriteOptsV2): Promise; /** * Move children of old parent note to new parent * @return note change entries of modified children */ protected updateChildrenWithNewParent(oldParent: NotePropsMeta, newParent: NotePropsMeta): Promise; /** * Update note metadata store based on note change entries * @param changes entries to update * @returns */ protected updateNoteMetadataStore(changes: NoteChangeEntry[]): Promise[]>; /** * Create backlink from given link that references another note (denoted by presence of link.to field) * and add that backlink to referenced note's links * * @param link Link potentionally referencing another note */ protected addBacklink(link: DLink): Promise; /** * Remove backlink associated with given link that references another note (denoted by presence of link.to field) * from that referenced note * * @param link Link potentially referencing another note */ protected removeBacklink(link: DLink): Promise; /** * See {@link DEngine.renderNote} */ abstract renderNote(opts: RenderNoteOpts): Promise; }