import { GraphQLNamedType } from 'graphql'; import { Instantiator } from '../types'; import { TypeResolvingContext } from '../type-expression/types'; import { Reference } from './Reference'; export declare type DefinitionKind = 'any' | 'input' | 'output'; export interface DefinitionConfig { definitionClass: Function | null; definitionName: string; description?: string; directives?: any; } /** * Contain configs required to build named GraphQL types. * Guarantee its type instance only created once. */ export declare class Definition { readonly config: TConfig; readonly kind: DefinitionKind; readonly definitionClass: Function | null; readonly definitionName: string; readonly description: string | undefined; constructor(config: TConfig); protected graphqlType: GraphQLNamedType; getOrCreateTypeInstance(context: TypeResolvingContext): GraphQLNamedType; findReference(context: TypeResolvingContext, referenceClass: { new (v: any): T; }): T[]; /** * Build GraphQLType instance from metadata. */ buildTypeInstance(context: TypeResolvingContext): GraphQLNamedType; buildInstantiator(context: TypeResolvingContext): Instantiator; } //# sourceMappingURL=Definition.d.ts.map