import type { Maybe } from '../jsutils/Maybe'; import type { ASTNode, FieldNode } from '../language/ast'; import type { ASTVisitor } from '../language/visitor'; import type { GraphQLArgument, GraphQLCompositeType, GraphQLEnumValue, GraphQLField, GraphQLInputType, GraphQLOutputType, GraphQLType, } from '../type/definition'; import type { GraphQLDirective } from '../type/directives'; import type { GraphQLSchema } from '../type/schema'; /** * TypeInfo is a utility class which, given a GraphQL schema, can keep track * of the current field and type definitions at any point in a GraphQL document * AST during a recursive descent by calling `enter(node)` and `leave(node)`. */ export declare class TypeInfo { private _schema; private _typeStack; private _parentTypeStack; private _inputTypeStack; private _fieldDefStack; private _defaultValueStack; private _directive; private _argument; private _enumValue; private _getFieldDef; constructor( schema: GraphQLSchema, /** * Initial type may be provided in rare cases to facilitate traversals * beginning somewhere other than documents. */ initialType?: Maybe, /** @deprecated will be removed in 17.0.0 */ getFieldDefFn?: GetFieldDefFn, ); get [Symbol.toStringTag](): string; getType(): Maybe; getParentType(): Maybe; getInputType(): Maybe; getParentInputType(): Maybe; getFieldDef(): Maybe>; getDefaultValue(): Maybe; getDirective(): Maybe; getArgument(): Maybe; getEnumValue(): Maybe; enter(node: ASTNode): void; leave(node: ASTNode): void; } declare type GetFieldDefFn = ( schema: GraphQLSchema, parentType: GraphQLType, fieldNode: FieldNode, ) => Maybe>; /** * Creates a new visitor instance which maintains a provided TypeInfo instance * along with visiting visitor. */ export declare function visitWithTypeInfo( typeInfo: TypeInfo, visitor: ASTVisitor, ): ASTVisitor; export {};