import { CollectionReference, DocumentData, DocumentSnapshot, Firestore } from '@google-cloud/firestore'; import { FirestoreCrudOptions, FirestoreCrudSchema } from './firestore-crud.interfaces'; import { FirestoreQueryBuilder } from './firestore-query-builder.model'; export declare abstract class FirestoreCrudRepository { readonly firestore: Firestore; readonly entityType: new () => T; protected readonly createdAtField: string; protected readonly updatedAtField: string; protected readonly softDeleteField: string; protected idFieldName: string; protected timestamp: boolean; protected softDelete: boolean; schema: FirestoreCrudSchema; constructor(firestore: Firestore, entityType: new () => T); protected get collection(): CollectionReference; private onInitSchema; private onInitMapCollectionFields; protected toEntity(snapshot: DocumentSnapshot): T; buildQuery(withDeleted?: boolean, options?: FirestoreCrudOptions): FirestoreQueryBuilder; createOne(data: Record, options?: FirestoreCrudOptions): Promise; saveOne(data: Record, options?: FirestoreCrudOptions): Promise; removeOne(id: string, options?: FirestoreCrudOptions): Promise; recoverOne(id: string, options?: FirestoreCrudOptions): Promise; createMany(bulk: Record[], options?: FirestoreCrudOptions): Promise; find(queryBuilder: FirestoreQueryBuilder): Promise; count(queryBuilder: FirestoreQueryBuilder): Promise; private getOptions; }