import { GraphQLInputType } from 'graphql'; import { CalcMutationsOperator, Field } from '../../model'; import { QueryNode, SetFieldQueryNode } from '../../query-tree'; import { AnyValue } from '../../utils/utils'; import { CreateChildEntityInputType, CreateObjectInputType } from '../create-input-types'; import { FieldContext } from '../query-node-object-type'; import { TypedInputFieldBase, TypedInputObjectType } from '../typed-input-object-type'; import { UpdateChildEntityInputType, UpdateEntityExtensionInputType, UpdateObjectInputType } from './input-types'; export interface UpdateInputFieldContext extends FieldContext { currentEntityNode: QueryNode; } export interface UpdateInputField extends TypedInputFieldBase { readonly field: Field; getProperties(value: AnyValue, context: UpdateInputFieldContext): ReadonlyArray; collectAffectedFields(value: AnyValue, fields: Set, context: FieldContext): void; appliesToMissingFields(): boolean; } export declare class DummyUpdateInputField implements UpdateInputField { readonly field: Field; readonly name: string; readonly inputType: GraphQLInputType | TypedInputObjectType; readonly deprecationReason: string | undefined; constructor(field: Field, name: string, inputType: GraphQLInputType | TypedInputObjectType, opts?: { readonly deprecationReason?: string; }); appliesToMissingFields(): boolean; collectAffectedFields(value: AnyValue, fields: Set, context: FieldContext): void; getProperties(value: AnyValue, context: UpdateInputFieldContext): ReadonlyArray; } export declare class UpdateFilterInputField implements UpdateInputField { readonly field: Field; readonly inputType: GraphQLInputType; readonly name: string; readonly description: string; constructor(field: Field, inputType: GraphQLInputType); appliesToMissingFields(): boolean; getProperties(context: FieldContext): never[]; collectAffectedFields(): never[]; } export declare class BasicUpdateInputField implements UpdateInputField { readonly field: Field; readonly inputType: GraphQLInputType | UpdateObjectInputType; readonly name: string; readonly description: string | undefined; readonly deprecationReason?: string | undefined; constructor(field: Field, inputType: GraphQLInputType | UpdateObjectInputType, name?: string, description?: string | undefined, deprecationReason?: string | undefined); getProperties(value: AnyValue, context: FieldContext): ReadonlyArray; protected coerceValue(value: AnyValue, context: FieldContext): AnyValue; collectAffectedFields(value: AnyValue, fields: Set, context: FieldContext): void; appliesToMissingFields(): boolean; } export declare class BasicListUpdateInputField extends BasicUpdateInputField { protected coerceValue(value: AnyValue, context: FieldContext): AnyValue; } export declare class CalcMutationInputField extends BasicUpdateInputField { readonly operator: CalcMutationsOperator; private readonly prefix; constructor(field: Field, inputType: GraphQLInputType, operator: CalcMutationsOperator, prefix: string); getProperties(value: AnyValue, context: UpdateInputFieldContext): ReadonlyArray; private getValueNode; } export declare class UpdateValueObjectInputField extends BasicUpdateInputField { readonly objectInputType: CreateObjectInputType; constructor(field: Field, objectInputType: CreateObjectInputType); protected coerceValue(value: AnyValue, context: FieldContext): AnyValue; collectAffectedFields(value: AnyValue, fields: Set, context: FieldContext): void; } export declare class UpdateValueObjectListInputField extends BasicUpdateInputField { readonly objectInputType: CreateObjectInputType; constructor(field: Field, objectInputType: CreateObjectInputType); protected coerceValue(value: AnyValue, context: FieldContext): AnyValue; collectAffectedFields(value: AnyValue, fields: Set, context: FieldContext): void; } export declare class UpdateEntityExtensionInputField implements UpdateInputField { readonly field: Field; readonly objectInputType: UpdateEntityExtensionInputType; readonly name: string; readonly description: string | undefined; readonly inputType: GraphQLInputType; constructor(field: Field, objectInputType: UpdateEntityExtensionInputType); getProperties(value: AnyValue, context: UpdateInputFieldContext): SetFieldQueryNode[]; private getValueNode; appliesToMissingFields(): boolean; collectAffectedFields(value: AnyValue, fields: Set, context: UpdateInputFieldContext): void; } export declare abstract class AbstractChildEntityInputField implements UpdateInputField { readonly field: Field; readonly name: string; readonly description: string; protected constructor(field: Field, name: string, description: string); abstract readonly inputType: GraphQLInputType; appliesToMissingFields(): boolean; getProperties(context: FieldContext): never[]; collectAffectedFields(value: AnyValue, fields: Set, context: FieldContext): void; } export declare class ReplaceChildEntitiesInputField extends AbstractChildEntityInputField { readonly createInputType: CreateChildEntityInputType; readonly inputType: GraphQLInputType; constructor(field: Field, createInputType: CreateChildEntityInputType); collectAffectedFields(value: AnyValue, fields: Set, context: FieldContext): void; } export declare class AddChildEntitiesInputField extends AbstractChildEntityInputField { readonly createInputType: CreateChildEntityInputType; readonly inputType: GraphQLInputType; constructor(field: Field, createInputType: CreateChildEntityInputType); collectAffectedFields(value: AnyValue, fields: Set, context: FieldContext): void; } export declare class UpdateChildEntitiesInputField extends AbstractChildEntityInputField { readonly updateInputType: UpdateChildEntityInputType; readonly inputType: GraphQLInputType; constructor(field: Field, updateInputType: UpdateChildEntityInputType); collectAffectedFields(value: AnyValue, fields: Set, context: FieldContext): void; } export declare class RemoveChildEntitiesInputField extends AbstractChildEntityInputField { readonly inputType: GraphQLInputType; constructor(field: Field); }