import DataLoader from 'dataloader'; import { Filter } from '.'; import type { GraphweaverPlugin } from './types'; type LoaderMap = { [key: string]: DataLoader; }; type LoadOneOptions = { gqlEntityType: { new (...args: any[]): G; }; id: string; filter?: Filter; }; type LoadByRelatedIdOptions = { gqlEntityType: { new (...args: any[]): G; }; relatedField: keyof D & string; id: string; filter?: Filter; }; export declare const getBaseRelatedIdLoader: ({ gqlEntityType, relatedField, keyStore, filter, }: { gqlEntityType: { new (...args: any[]): G; }; relatedField: string; keyStore: LoaderMap; filter?: Filter; }) => DataLoader; export declare class BaseLoader { private loadOneLoaderMap; private relatedIdLoaderMap; loadOne(args: LoadOneOptions): Promise; loadByRelatedId(args: LoadByRelatedIdOptions): Promise; clearCache(): void; } export declare const BaseLoaders: { loadOne: (options: LoadOneOptions) => Promise; loadByRelatedId: (options: LoadByRelatedIdOptions) => Promise; clearCache: () => void; }; export declare const BaseLoaderRequestContextPlugin: GraphweaverPlugin; export {};