import { DirectiveNode, DocumentNode, EnumTypeDefinitionNode, EnumValueDefinitionNode, FieldDefinitionNode, InputObjectTypeDefinitionNode, InputValueDefinitionNode, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ScalarTypeDefinitionNode, TypeDefinitionNode, TypeNode } from 'graphql'; import { SourcePosition } from '../model/validation'; import { ProjectSource } from '../project/source'; /** * Get all @link ObjectTypeDefinitionNode a model. * @param {DocumentNode} model (ast) * @returns {ReadonlyArray} */ export declare function getObjectTypes(model: DocumentNode): ReadonlyArray; export declare function getEnumTypes(model: DocumentNode): ReadonlyArray; /** * Get all @link ObjectTypeDefinitionNode annotated with @rootEntity directive of a model. */ export declare function getRootEntityTypes(model: DocumentNode): ReadonlyArray; /** * Get all @link ObjectTypeDefinitionNode annotated with @childEntity directive of a model. */ export declare function getChildEntityTypes(model: DocumentNode): ReadonlyArray; /** * Get all @link ObjectTypeDefinitionNode annotated with @entityExtension directive of a model. */ export declare function getEntityExtensionTypes(model: DocumentNode): ReadonlyArray; /** * Get all @link ObjectTypeDefinitionNode annotated with @valueObject directive of a model. */ export declare function getValueObjectTypes(model: DocumentNode): ReadonlyArray; export declare function getNamedTypeDefinitionAST(ast: DocumentNode, name: string): ObjectTypeDefinitionNode | ScalarTypeDefinitionNode | EnumTypeDefinitionNode | InputObjectTypeDefinitionNode; export declare function getTypeNameIgnoringNonNullAndList(typeNode: TypeNode): string; export declare function getNamedTypeNodeIgnoringNonNullAndList(typeNode: TypeNode): NamedTypeNode; export declare function getNamedInputTypeDefinitionAST(ast: DocumentNode, name: string): InputObjectTypeDefinitionNode | ScalarTypeDefinitionNode; export declare function buildScalarDefinitionNode(name: string): ScalarTypeDefinitionNode; export declare function buildNameNode(name: string): NameNode; export declare function findDirectiveWithName(typeOrField: TypeDefinitionNode | FieldDefinitionNode | InputValueDefinitionNode | EnumValueDefinitionNode | InputObjectTypeDefinitionNode, directiveName: string): DirectiveNode | undefined; export declare function getDeprecationReason(node: FieldDefinitionNode | EnumValueDefinitionNode): string | undefined; export declare function hasDirectiveWithName(typeOrField: ObjectTypeDefinitionNode | FieldDefinitionNode | InputValueDefinitionNode, directiveName: string): boolean; export declare function getNodeByName(listOfNodes: ReadonlyArray | undefined, name: string): T | undefined; export declare function getLineAndColumnFromPosition(position: number, source: string): { line: number; column: number; }; export declare function getLineEndPosition(targetLine: number, source: ProjectSource): SourcePosition;