import { FieldNode, GraphQLSchema } from 'graphql'; import DataLoader from 'dataloader'; import { IDelegateToSchemaOptions, SubschemaConfig } from '@graphql-tools/delegate'; export declare type DataLoaderCache = WeakMap, WeakMap>>; export declare type BatchDelegateFn, K = any> = (batchDelegateOptions: BatchDelegateOptions) => any; export declare type BatchDelegateOptionsFn, K = any> = (batchDelegateOptions: BatchDelegateOptions) => IDelegateToSchemaOptions; export interface BatchDelegateOptions, K = any, V = any, C = K> extends Omit, 'args'> { dataLoaderOptions?: DataLoader.Options; key: K; argsFromKeys?: (keys: ReadonlyArray) => Record; valuesFromResults?: (results: any, keys: ReadonlyArray) => Array; lazyOptionsFn?: BatchDelegateOptionsFn; } export interface CreateBatchDelegateFnOptions, K = any, V = any, C = K> extends Partial, 'args' | 'info'>> { dataLoaderOptions?: DataLoader.Options; argsFromKeys?: (keys: ReadonlyArray) => Record; valuesFromResults?: (results: any, keys: ReadonlyArray) => Array; lazyOptionsFn?: (batchDelegateOptions: BatchDelegateOptions) => IDelegateToSchemaOptions; }