import { GraphQLInputFieldConfigMap } from 'graphql'; import { ThunkReadonlyArray } from 'graphql/type/definition'; import { ChildEntityType, EntityExtensionType, Field, ObjectType, RootEntityType } from '../../model'; import { PreExecQueryParms, QueryNode, RuntimeErrorQueryNode, SetFieldQueryNode } from '../../query-tree'; import { PlainObject } from '../../utils/utils'; import { FieldContext } from '../query-node-object-type'; import { TypedInputObjectType } from '../typed-input-object-type'; import { UpdateInputField, UpdateInputFieldContext } from './input-fields'; export interface AdditionalPropertiesContext extends UpdateInputFieldContext { regularProperties: ReadonlyArray; } export declare class UpdateObjectInputType extends TypedInputObjectType { protected readonly objectType: ObjectType; private readonly childEntityFields; constructor(objectType: ObjectType, name: string, fields: ThunkReadonlyArray); getProperties(value: PlainObject, context: UpdateInputFieldContext): ReadonlyArray; check(value: PlainObject, context: FieldContext): RuntimeErrorQueryNode | undefined; private getChildEntityProperties; protected getAdditionalProperties(value: PlainObject, context: AdditionalPropertiesContext): ReadonlyArray; collectAffectedFields(value: PlainObject, fields: Set, context: FieldContext): void; getAffectedFields(value: PlainObject, context: FieldContext): ReadonlyArray; private getApplicableInputFields; } export declare class UpdateRootEntityInputType extends UpdateObjectInputType { readonly rootEntityType: RootEntityType; private readonly updatedAtField; readonly description: string; constructor(rootEntityType: RootEntityType, name: string, fields: ThunkReadonlyArray); getAdditionalProperties(value: PlainObject, { regularProperties }: AdditionalPropertiesContext): SetFieldQueryNode[]; getRelationStatements(input: PlainObject, idNode: QueryNode, context: FieldContext): ReadonlyArray; protected transformFieldConfigs(fields: GraphQLInputFieldConfigMap): GraphQLInputFieldConfigMap; getRevision(input: PlainObject): string | undefined; } export declare class UpdateEntityExtensionInputType extends UpdateObjectInputType { readonly entityExtensionType: EntityExtensionType; readonly description: string; constructor(entityExtensionType: EntityExtensionType, name: string, fields: ThunkReadonlyArray); } export declare class UpdateChildEntityInputType extends UpdateObjectInputType { private readonly childEntityType; private readonly updatedAtField; readonly description: string; constructor(childEntityType: ChildEntityType, name: string, fields: ThunkReadonlyArray); getAdditionalProperties(): SetFieldQueryNode[]; }