import { IDirectiveResolvers, IResolverValidationOptions } from 'graphql-tools'; import { ResolversComposerMapping } from '@graphql-toolkit/common'; import { Provider, Injector, ProviderScope } from '@graphql-modules/di'; import { DocumentNode, GraphQLSchema, GraphQLScalarType } from 'graphql'; import { ModuleSessionInfo } from './module-session-info'; import { ModuleContext, SubscriptionHooks, Resolvers } from './types'; import { KeyValueCache } from 'apollo-server-caching'; declare type MaybePromise = Promise | T; export interface LogMethod { (message: string, ...meta: any[]): void; (message: Error, ...meta: any[]): void; (message: string | Error): void; } export interface Logger { log?: LogMethod; debug?: LogMethod; info?: LogMethod; error?: LogMethod; clientError?: LogMethod; warn?: LogMethod; } /** * A context builder method signature for `contextBuilder`. */ export declare type BuildContextFn = (session: Session, currentContext: ModuleContext, moduleSessionInfo: ModuleSessionInfo) => Promise | Context; export interface SchemaDirectives { [name: string]: any; } export declare type GraphQLModuleOption = Option | ((module: GraphQLModule, ...args: any[]) => Option); export declare type GraphQLModuleOptionAsync = GraphQLModuleOption | Promise