import { CollectionReference, Query } from "@google-cloud/firestore";
import { DataSource } from "apollo-datasource";
import DataLoader, { Options } from "dataloader";
/**
 * GraphQL DataLoader for Cloud Firestore.
 */
export declare class FirestoreDataLoader<TDocument = any> extends DataSource {
    dataLoader: DataLoader<string, (TDocument & {
        id: string;
    }) | null>;
    /**
     * constructor
     * It is assumed to be declared as one of the dataSources.
     * @param baseQuery CollectionReference or Query
     * @param options DataLoader.Options. maxBatchSize is set to 10 due to firestore limitation.
     */
    constructor(baseQuery: CollectionReference | Query, options?: Options<string, (TDocument & {
        id: string;
    }) | null, string> | undefined);
    /**
     * load datas by keys
     * @param {CollectionReference | Query} baseQuery CollectionReference or Query
     * @param {string[]} keys
     * @returns documents
     */
    loadDataByKeys(baseQuery: CollectionReference | Query, keys: readonly string[]): Promise<((TDocument & {
        id: string;
    }) | null)[]>;
}
