import { ComposeInputType, ComposeOutputType, Resolver, SchemaComposer, ObjectTypeComposer } from "graphql-compose"; import { ResolverBuilder } from "./resolver-builder"; import { QueueSolver } from "./type-composer-creation/queue-solver"; import { Mounter } from "./mounting/mounter"; import { ComposerCreator } from "./type-composer-creation/composer-creator"; export declare type ProvidenOutputType = ComposeOutputType | ClassType | Array; export declare type ProvidenInputType = ComposeInputType | ClassType | Array; export declare type ProvidenType = ProvidenInputType | ProvidenOutputType; export declare type OutputTypeFn = () => ProvidenOutputType; export declare type InputTypeFn = () => ProvidenInputType; export declare type TypeFn = OutputTypeFn | InputTypeFn; export interface DefaultContext { } export declare class ArgumentsMapper { mapArguments(args: any, paramNames: string[]): any[]; } export declare class TypeNotSpecified extends Error { constructor(constructor: Function, propertyName: string); } export declare class ArrayTypeNotSpecified extends Error { constructor(constructor: Function, propertyName: string); } export declare class ClassSpecialist { isClassType(type: ProvidenOutputType | ProvidenInputType): type is ClassType; isArrayClassType(type: ProvidenOutputType | ProvidenInputType): type is [ClassType]; } export declare class GraphqlComposeTypescript { readonly schemaComposer: SchemaComposer; protected mounter: Mounter; protected typeComposerCreator: ComposerCreator; protected resolverBuilder: ResolverBuilder; protected solver: QueueSolver; constructor(schemaComposer: SchemaComposer, mounter: Mounter, typeComposerCreator: ComposerCreator, resolverBuilder: ResolverBuilder, solver: QueueSolver); mountInstances(instances: any[]): SchemaComposer; getComposer(typeOrInstance: ClassType): ObjectTypeComposer>; getResolver(instance: T, method: keyof T & string): Resolver; static createGlobal(): GraphqlComposeTypescript; static create(schemaComposer: SchemaComposer): GraphqlComposeTypescript; } export interface ClassType extends Function { new (...args: any[]): T; }