import { GraphQLSchema, GraphQLDirective } from "graphql"; import { Wrapper, Removable, GQLAnyType, SchemaConfig } from "../.."; import { Buildable } from "../../classes/Buildable"; export declare class Schema extends Buildable { protected static _config: SchemaConfig; protected _directives: GraphQLDirective[]; static get config(): SchemaConfig; protected _types: GQLAnyType[]; get types(): GQLAnyType[]; protected constructor(); /** * Create a new schema * @param types The type list to build */ static create(...types: (GQLAnyType | Wrapper)[]): Schema; setConfig(config: SchemaConfig): this; /** * Set the type list to build * @param types The type list to build */ setTypes(...types: (GQLAnyType | Wrapper)[]): this; /** * Add a type to the list to build * @param types The type list to build */ addTypes(...types: (GQLAnyType | Wrapper)[]): this; /** * Remove some types to the list * @param types The type list to remove */ removeTypes(...types: Removable): this; setDirectives(...directives: GraphQLDirective[]): this; addDirectives(...directives: GraphQLDirective[]): this; removeDirectives(...directives: GraphQLDirective[]): this; /** * Build the schema and all the types contained in it */ build(): GraphQLSchema; }