import { ArgumentsMapper, ClassType, DefaultContext, InputTypeFn, OutputTypeFn, TypeFn } from "../graphq-compose-typescript"; import { StringKey } from "../utils"; import { PropertyTypeConvertor } from "../argument-type-convertor"; import { ComposeFieldConfig, ComposeInputFieldConfig, ComposeInputType, ComposeOutputType, SchemaComposer } from "graphql-compose"; import { ArgumentsBuilder, ParamsNamesKeeper } from "../arguments-builder"; import { PropertyTypeKeeper } from "../metadata"; import { GraphQLFieldResolver } from "graphql"; export interface FieldCreator { createField(constructor: ClassType, typeFn: TypeFn, key: StringKey): any; } export declare class OutputFieldCreator implements FieldCreator { protected argumentsBuilder: ArgumentsBuilder; protected argumentsMapper: ArgumentsMapper; protected propertyTypeConvertor: PropertyTypeConvertor>; protected propertyTypeKeeper: PropertyTypeKeeper; protected schemaComposer: SchemaComposer; protected paramsNamesKeeper: ParamsNamesKeeper; constructor(argumentsBuilder: ArgumentsBuilder, argumentsMapper: ArgumentsMapper, propertyTypeConvertor: PropertyTypeConvertor>, propertyTypeKeeper: PropertyTypeKeeper, schemaComposer: SchemaComposer, paramsNamesKeeper: ParamsNamesKeeper); protected createResolver(constructor: ClassType, key: StringKey): GraphQLFieldResolver; createField(constructor: ClassType, typeFn: OutputTypeFn, key: any): ComposeFieldConfig>; } export declare class InputFieldCreator implements FieldCreator { protected propertyTypeConvertor: PropertyTypeConvertor; protected schemaComposer: SchemaComposer; constructor(propertyTypeConvertor: PropertyTypeConvertor, schemaComposer: SchemaComposer); createField(constructor: ClassType, typeFn: InputTypeFn, key: StringKey): ComposeInputFieldConfig; }