import * as firebase from "firebase"; import { MockApp } from "../app"; import { EventEmitter } from "../util"; import { MockCollectionReference } from "./collection-reference"; import { MockDocumentReference } from "./document-reference"; import { MockCollectionGroup } from "./collection-group"; import { MockWriteBatch } from "./write-batch"; export declare class MockFirestore implements firebase.firestore.Firestore { readonly app: MockApp; INTERNAL: { delete: () => Promise; }; private state; private id; readonly documentData: Map; readonly documentEvents: Map; readonly collectionDocuments: Map>; readonly collectionEvents: Map; private readonly emitter; constructor(app: MockApp, initialData?: Map); private setStateRunning; nextId(): string; writeDocument(doc: MockDocumentReference, data: firebase.firestore.DocumentData | undefined): void; onNewCollection(listener: (path: string) => void): void; clone(): MockFirestore; batch(): MockWriteBatch; clearPersistence(): Promise; enablePersistence(settings?: firebase.firestore.PersistenceSettings): Promise; enableNetwork(): Promise; disableNetwork(): Promise; collection(collectionPath: string): MockCollectionReference; collectionGroup(collectionId: string): MockCollectionGroup; doc(documentPath: string): MockDocumentReference; runTransaction(updateFunction: (transaction: firebase.firestore.Transaction) => Promise): Promise; onSnapshotsInSync(observer: { next?: (value: void) => void; error?: (error: Error) => void; complete?: () => void; }): () => void; onSnapshotsInSync(onSync: () => void): () => void; settings(settings: firebase.firestore.Settings): void; terminate(): Promise; waitForPendingWrites(): Promise; }