import { DefinitionNode, FieldDefinitionNode, InputObjectTypeDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, ListTypeNode, NamedTypeNode, NonNullTypeNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, InterfaceTypeExtensionNode, InputObjectTypeExtensionNode, DirectiveNode, ArgumentNode, ObjectFieldNode, ValueNode } from 'graphql'; import { Metadata } from '../metadata/MetadataStorage'; import { GraphQLFieldResolver } from 'graphql/type/definition'; import { TypeExpression } from '../type-expression/TypeExpression'; import { InputField } from '../reference/InputField'; import { TypeArg } from '../type-expression/types'; export interface SubstitutionMap { [tempName: string]: TypeExpression | TypeArg; } export declare class DefinitionParser { protected rootNode: DefinitionNode; protected subsMap: SubstitutionMap; private metadata; constructor(rootNode: DefinitionNode, subsMap: SubstitutionMap); parse(definitionClass: Function): Metadata[]; protected completeTypeExpression(typeNode: NamedTypeNode | ListTypeNode | NonNullTypeNode): TypeExpression; protected handleObjectTypeDefinition(rootNode: ObjectTypeDefinitionNode, definitionClass: Function): void; protected handleObjectTypeExtension(rootNode: ObjectTypeExtensionNode, definitionClass: Function): void; protected handleInterfaceTypeDefinition(rootNode: InterfaceTypeDefinitionNode, definitionClass: Function): void; protected handleInterfaceTypeExtension(rootNode: InterfaceTypeExtensionNode, definitionClass: Function): void; protected handleInputObjectTypeDefinition(node: InputObjectTypeDefinitionNode, definitionClass: Function): void; protected handleInputObjectExtension(node: InputObjectTypeExtensionNode, definitionClass: Function): void; protected appendFieldMetadataConfig(node: FieldDefinitionNode, definitionClass: Function, extendingTypeName?: string): void; protected createInputField(node: InputValueDefinitionNode, definitionClass: Function, extendingTypeName?: string): InputField; protected appendInputFieldMetadataConfig(node: InputValueDefinitionNode, definitionClass: Function, extendingTypeName?: string): void; protected appendImplementTypeExpression(node: NamedTypeNode, definitionClass: Function, extendingTypeName?: string): void; protected completeDirectives(directiveNodes: ReadonlyArray): DirectiveMap; protected completeArgumentsOrObjectFields(nodes: ReadonlyArray): any; protected completeValueNode(node: ValueNode): any; } export declare type DirectiveMap = { [key: string]: any; }; export declare function bindStaticResolver(definitionClass: Function, fieldName: string): GraphQLFieldResolver | null; //# sourceMappingURL=ast.d.ts.map