import { FieldDefinitionNode, EnumValueDefinitionNode, ObjectTypeDefinitionNode, InputValueDefinitionNode } from 'graphql/language'; import { GraphQLSchema } from 'graphql/type'; import { Maybe } from '../maybe'; import { Relationship, RelationshipManager } from '../relationship-manager'; import { Namer } from './namer'; import { ArgumentsBuilder } from './arguments-builder'; export declare abstract class FieldBuilder { protected schema: GraphQLSchema; protected namer: Namer; protected argumentsBuilder: ArgumentsBuilder; protected relationshipManager: RelationshipManager; constructor(schema: GraphQLSchema, namer: Namer, argumentsBuilder: ArgumentsBuilder, relationshipManager: RelationshipManager); abstract buildReadManyField(model: ObjectTypeDefinitionNode): Maybe; abstract buildReadItemField(model: ObjectTypeDefinitionNode): Maybe; abstract buildCreateItemField(model: ObjectTypeDefinitionNode): Maybe; abstract buildUpdateItemField(model: ObjectTypeDefinitionNode): Maybe; abstract buildDeleteItemField(model: ObjectTypeDefinitionNode): Maybe; abstract buildCreateManyField(model: ObjectTypeDefinitionNode): Maybe; abstract buildUpdateManyField(model: ObjectTypeDefinitionNode): Maybe; abstract buildDeleteManyField(model: ObjectTypeDefinitionNode): Maybe; abstract buildOrderByInputFields(fields: ReadonlyArray): EnumValueDefinitionNode[]; abstract buildWhereInputLogicalFields(name: string): InputValueDefinitionNode[]; abstract buildWhereInputFields(fields: ReadonlyArray, model: ObjectTypeDefinitionNode): InputValueDefinitionNode[]; abstract buildWhereUniqueInputFields(fields: ReadonlyArray, model: ObjectTypeDefinitionNode): InputValueDefinitionNode[]; abstract buildCreateInputFields(fields: ReadonlyArray, model: ObjectTypeDefinitionNode): InputValueDefinitionNode[]; abstract buildUpdateInputFields(fields: ReadonlyArray, model: ObjectTypeDefinitionNode): InputValueDefinitionNode[]; abstract buildCreateRelationalInputField(relationship: Relationship): Maybe; abstract buildConnectRelationalInputField(relationship: Relationship): Maybe; abstract buildDisconnectRelationalInputField(relationship: Relationship): Maybe; abstract buildDeleteRelationalInputField(relationship: Relationship): Maybe; abstract buildCreatePostRelationalInputFields(relationship: Relationship): InputValueDefinitionNode[]; }