import { Type } from '@nestjs/common'; import { ModuleMetadata } from '@nestjs/common/interfaces'; import { Config } from 'apollo-server-core'; import { GraphQLSchema } from 'graphql'; import { DefinitionsGeneratorOptions } from '../graphql-ast.explorer'; import { BuildSchemaOptions } from './build-schema-options.interface'; export interface ServerRegistration { path?: string; cors?: any | boolean; bodyParserConfig?: any | boolean; onHealthCheck?: (req: any) => Promise; disableHealthCheck?: boolean; } export interface IResolverValidationOptions { requireResolversForArgs?: boolean; requireResolversForNonScalar?: boolean; requireResolversForAllFields?: boolean; requireResolversForResolveType?: boolean; allowResolversNotInSchema?: boolean; } export declare type Omit = Pick>; export declare type Enhancer = 'guards' | 'interceptors' | 'filters'; export interface GqlModuleOptions extends Omit, Partial> { typeDefs?: string | string[]; typePaths?: string[]; include?: Function[]; installSubscriptionHandlers?: boolean; resolverValidationOptions?: IResolverValidationOptions; directiveResolvers?: any; schemaDirectives?: Record; transformSchema?: (schema: GraphQLSchema) => GraphQLSchema | Promise; definitions?: { path?: string; outputAs?: 'class' | 'interface'; } & DefinitionsGeneratorOptions; autoSchemaFile?: string | boolean; buildSchemaOptions?: BuildSchemaOptions; useGlobalPrefix?: boolean; fieldResolverEnhancers?: Enhancer[]; } export interface GqlOptionsFactory { createGqlOptions(): Promise | GqlModuleOptions; } export interface GqlModuleAsyncOptions extends Pick { useExisting?: Type; useClass?: Type; useFactory?: (...args: any[]) => Promise | GqlModuleOptions; inject?: any[]; }