import { DocumentChangeType, Unsubscribe } from "firebase/firestore";
type SnapshotFactoryCb<D extends any> = (changes: {
    doc: D;
    type: DocumentChangeType;
}[]) => void;
export type SnapshotFactoryReturn<D extends {
    id: string;
}> = (cb: SnapshotFactoryCb<D>) => Unsubscribe;
export default function useFirestoreWatch<D extends {
    id: string;
}, P extends any[]>(queryFactory: (...params: P) => SnapshotFactoryReturn<D>, params: P): D[] | undefined;
export {};
