import { GraphQLNamedType } from 'graphql'; import { DynamicFieldDefs, SchemaConfig } from './builder'; import { RootTypings } from './definitions/_types'; import { NexusOutputFieldConfig } from './definitions/definitionBlocks'; import { NexusInputObjectTypeConfig } from './definitions/inputObjectType'; import { NexusInterfaceTypeConfig } from './definitions/interfaceType'; import { NexusObjectTypeConfig } from './definitions/objectType'; export declare type NexusGraphQLNamedType = GraphQLNamedType & { extensions?: { nexus?: { config: any; }; }; }; export declare type NexusTypeExtensions = NexusObjectTypeExtension | NexusInterfaceTypeExtension; /** * Container object living on `fieldDefinition.extensions.nexus` */ export declare class NexusFieldExtension { readonly config: Omit, 'resolve'>; /** * Whether the user has provided a custom "resolve" function, * or whether we're using GraphQL's defaultResolver */ readonly hasDefinedResolver: boolean; constructor(config: NexusOutputFieldConfig); } /** * Container object living on `inputObjectType.extensions.nexus` */ export declare class NexusInputObjectTypeExtension { readonly config: Omit, 'definition'>; constructor(config: NexusInputObjectTypeConfig); } /** * Container object living on `objectType.extensions.nexus` */ export declare class NexusObjectTypeExtension { readonly config: Omit, 'definition' | 'isTypeOf'>; constructor(config: NexusObjectTypeConfig); } /** * Container object living on `interfaceType.extensions.nexus` */ export declare class NexusInterfaceTypeExtension { readonly config: Omit, 'definition' | 'resolveType'>; constructor(config: NexusInterfaceTypeConfig); } export interface NexusSchemaExtensionConfig extends Omit { dynamicFields: DynamicFieldDefs; rootTypings: RootTypings; } /** * Container object living on `schema.extensions.nexus`. Keeps track * of metadata from the builder so we can use it when we */ export declare class NexusSchemaExtension { readonly config: NexusSchemaExtensionConfig; constructor(config: NexusSchemaExtensionConfig); }