import * as firebase from "firebase";
import { Observer } from "../util";
import { MockFirestore } from "./firestore";
import { MockQuery } from "./query";
export declare class MockCollectionGroup<T = firebase.firestore.DocumentData> extends MockQuery<T> {
    private activeListeners;
    constructor(firestore: MockFirestore, id: string, converter: firebase.firestore.FirestoreDataConverter<T>);
    emitChange(): Promise<void>;
    clone(): MockCollectionGroup<T>;
    private maybeHookNewCollection;
    private getCandidateCollections;
    getCandidateDocKeys(): Set<string>;
    onSnapshot(observer: Observer<firebase.firestore.QuerySnapshot<T>>): () => void;
    onSnapshot(options: firebase.firestore.SnapshotListenOptions, observer: Observer<firebase.firestore.QuerySnapshot<T>>): () => void;
    onSnapshot(onNext: (snapshot: firebase.firestore.QuerySnapshot<T>) => void, onError?: ((error: Error) => void) | undefined, onCompletion?: (() => void) | undefined): () => void;
    onSnapshot(options: firebase.firestore.SnapshotListenOptions, onNext: (snapshot: firebase.firestore.QuerySnapshot<T>) => void, onError?: ((error: Error) => void) | undefined, onCompletion?: (() => void) | undefined): () => void;
}
