import { DBConfig } from "../index.js"; import { Member } from "@treecg/types"; import { AnyBulkWriteOperation } from "mongodb"; import { TREEFragment } from "../fragmentHelper.js"; import { Bucket, Record, Relation } from "../extractor.js"; export type DataRecord = { id: string; data: string; }; export type DataBulkOperations = AnyBulkWriteOperation[] | Promise[]; export type IndexBulkOperations = AnyBulkWriteOperation[] | Promise[]; export interface Repository { open(): Promise; close(): Promise; ingestMetadata(type: string, id: string, value: string): Promise; findMetadataFragmentations(): Promise; createIndices(): Promise; prepareDataBulk(): DataBulkOperations; ingestDataBulk(bulk: DataBulkOperations): Promise; handleRecord(record: Record, data: string, bulk: DataBulkOperations): Promise; prepareIndexBulk(): IndexBulkOperations; ingestIndexBulk(bulk: IndexBulkOperations): Promise; handleMember(record: Record, bucket: string, bulk: IndexBulkOperations): Promise; handleBucket(bucket: Bucket, bulk: IndexBulkOperations): Promise; handleRelation(relation: Relation, path: string | undefined, value: string | undefined, bulk: IndexBulkOperations): Promise; removeRelation(relation: Relation, path: string | undefined, value: string | undefined, bulk: IndexBulkOperations): Promise; getStoreType(): string; } export declare function getRepository(dbConfig: DBConfig): Repository;