import { InputTypeComposer, SchemaComposer, ObjectTypeComposer, EnumTypeComposer } from "graphql-compose"; import { TypeNameKeeper } from "../type-name"; import { ClassSpecialist, ClassType } from "../graphq-compose-typescript"; import { ComposerBuilder } from "./composer-builder"; import { ProvidenTypeSingular } from "./queue"; import { GraphqlComposeTypescriptError } from "../error"; export declare class ComposerCreator { protected outputCreator: ComposerInstanceCreator; protected inputCreator: ComposerInstanceCreator; protected outputBuilder: ComposerBuilder; protected inputBuilder: ComposerBuilder; constructor(outputCreator: ComposerInstanceCreator, inputCreator: ComposerInstanceCreator, outputBuilder: ComposerBuilder, inputBuilder: ComposerBuilder); createTypeComposer(constructor: ClassType): ObjectTypeComposer; createInputTypeComposer(constructor: ClassType): InputTypeComposer; } export interface ComposerInstanceCreator { create(type: ProvidenTypeSingular): C; createFromString(text: string): C; } export declare class InputComposerCreator implements ComposerInstanceCreator { protected schemaComposer: SchemaComposer; protected nameKeeper: TypeNameKeeper; protected classSpecialist: ClassSpecialist; constructor(schemaComposer: SchemaComposer, nameKeeper: TypeNameKeeper, classSpecialist: ClassSpecialist); create(type: ProvidenTypeSingular): InputTypeComposer; createFromString(text: string): InputTypeComposer; } export declare class CannotCreateTypeComposerFromITC extends GraphqlComposeTypescriptError { constructor(itc: InputTypeComposer); } export declare class OutputComposerCreator implements ComposerInstanceCreator { protected schemaComposer: SchemaComposer; protected nameKeeper: TypeNameKeeper; protected classSpecialist: ClassSpecialist; constructor(schemaComposer: SchemaComposer, nameKeeper: TypeNameKeeper, classSpecialist: ClassSpecialist); create(type: ProvidenTypeSingular): ObjectTypeComposer; createFromString(text: string): ObjectTypeComposer; }