import type { Firestore, Query as FirestoreQuery, WriteBatch } from '@firebase/firestore'; import { Transaction } from '@firebase/firestore'; import { type AppModel, type Mapper, type PlainModel, type Repository, type RootCollectionPlainModel } from 'firestore-repository/repository'; import type { Collection, RootCollection, SubCollection } from 'firestore-repository/schema'; /** Platform-specific environment types for Firebase JS SDK */ export type Env = { transaction: Transaction; writeBatch: WriteBatch; query: FirestoreQuery; }; /** Creates a repository for a root collection using plain document types */ export declare const rootCollectionRepository: (db: Firestore, collection: T) => Repository, Env>; /** Creates a repository for a subcollection using plain document types */ export declare const subcollectionRepository: (db: Firestore, collection: T) => Repository, Env>; /** Creates a repository with a custom mapper for transforming between Firestore documents and application models */ export declare const repositoryWithMapper: (db: Firestore, collection: T, mapper: Mapper) => Repository;