// @flow import type { DocumentReference, DocumentSnapshot, GetOptions, Query, QuerySnapshot, SnapshotListenOptions, } from 'firebase/firestore'; type LoadingHook = [T | void, boolean, Error | void]; export type CollectionHook = LoadingHook; export type CollectionDataHook = LoadingHook; export type DocumentHook = LoadingHook; export type DocumentDataHook = LoadingHook; declare export function useCollection( query?: Query | null, options?: { snapshotListenOptions?: SnapshotListenOptions, } ): CollectionHook; declare export function useCollectionOnce( query?: Query | null, options?: { getOptions?: GetOptions, } ): CollectionHook; declare export function useCollectionData( query?: Query | null, options?: { idField?: string, refField?: string, snapshotListenOptions?: SnapshotListenOptions, } ): CollectionDataHook; declare export function useCollectionDataOnce( query?: Query | null, options?: { getOptions?: GetOptions, idField?: string, refField?: string, } ): CollectionDataHook; declare export function useDocument( ref?: DocumentReference | null, options?: { snapshotListenOptions?: SnapshotListenOptions, } ): DocumentHook; declare export function useDocumentOnce( ref?: DocumentReference | null, options?: { getOptions?: GetOptions, } ): DocumentHook; declare export function useDocumentData( ref?: DocumentReference | null, options?: { idField?: string, refField?: string, snapshotListenOptions?: SnapshotListenOptions, } ): DocumentDataHook; declare export function useDocumentDataOnce( ref?: DocumentReference | null, options?: { getOptions?: GetOptions, idField?: string, refField?: string, } ): DocumentDataHook;