import { GraphQLSchema } from 'graphql'; import { YAMLNode } from 'yaml-ast-parser'; import { ParsedProject, ParsedProjectSource } from '../config/parsed-project'; import { DatabaseAdapter } from '../database/database-adapter'; import { Model, ValidationContext, ValidationResult } from '../model'; import { Project, ProjectOptions } from '../project/project'; import { ProjectSource } from '../project/source'; import { PlainObject } from '../utils/utils'; /** * Validates a project and thus determines whether createSchema() would succeed */ export declare function validateSchema(project: Project): ValidationResult; export declare function validateAndPrepareSchema(project: Project): { validationResult: ValidationResult; model: Model; }; /** Create an executable schema for a given schema definition. A schema definition is an array of definition parts, represented as a (sourced) SDL string or AST document. Use the optional context to inject your logging framework. */ export declare function createSchema(project: Project, databaseAdapter: DatabaseAdapter): GraphQLSchema; export declare function getModel(project: Project): Model; /** * Parse all schema parts sources which aren't AST already and deep clone all AST sources. */ export declare function parseProject(project: Project, validationContext: ValidationContext): ParsedProject; export declare function parseProjectSource(projectSource: ProjectSource, options: ProjectOptions, validationContext: ValidationContext): ParsedProjectSource | undefined; export declare function extractJSONFromYAML(root: YAMLNode, validationContext: ValidationContext, source: ProjectSource): PlainObject | undefined;