import { Model, Document } from 'mongoose';
import { default as DataLoader } from 'dataloader';
declare type LoaderKey = string | number | symbol;
declare class MongooseDataloader<K extends LoaderKey, V extends Document> {
    private readonly mongooseModel;
    private readonly loaderMap;
    constructor(mongooseModel: Model<V>);
    dataloader(key: K): DataLoader<K, V>;
    private createLoader;
}
declare class MongooseDataloaderFactory {
    private readonly loaderMap;
    constructor();
    mongooseLoader<T extends Document>(model: Model<T>): MongooseDataloader<LoaderKey, T>;
}
export { MongooseDataloader, MongooseDataloaderFactory };
