import type { GraphQLFieldResolver, Resolvers } from "@webiny/handler-graphql/types.js"; import type { GraphQLSchemaDefinition } from "@webiny/handler-graphql/types.js"; import type { CmsModelField, CmsModelFieldType } from "../../../../types/modelField.js"; import type { CmsModel } from "../../../../types/model.js"; import type { CmsModelFieldDefinition } from "../../../../types/types.js"; import type { CmsContext } from "../../../../types/types.js"; export interface ValidateChildFieldsValidateParams { fields: TField[]; originalFields: TField[]; } export interface ValidateChildFieldsValidate { (params: ValidateChildFieldsValidateParams): void; } export interface ValidateChildFieldsParams { field: TField; originalField?: TField; validate: ValidateChildFieldsValidate; } export interface ValidateChildFields { (params: ValidateChildFieldsParams): void; } import type { GenericRecord } from "@webiny/api/types.js"; import type { GetCmsModelFieldAst } from "../../../../types/modelAst.js"; import type { CmsModelFieldToGraphQLRegistry } from "./CmsModelFieldToGraphQLRegistry.js"; export interface CreateTypeFieldParams { models: CmsModel[]; model: CmsModel; field: TField; fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface; } export interface CreateGetFiltersParams { field: TField; } export interface CreateListFiltersParams { model: Pick; field: TField; fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface; } export interface CreateResolverParams { models: CmsModel[]; model: CmsModel; graphQLType: string; field: TField; createFieldResolvers: any; fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface; } export type ResolverResult = GraphQLFieldResolver | { resolver: GraphQLFieldResolver | null; typeResolvers: Resolvers; } | false; export interface CreateSchemaParams { models: CmsModel[]; } export interface NormalizeInputParams { model: CmsModel; field: TField; input: GenericRecord | Array>; } export interface ICmsFieldReadApi { createTypeField(params: CreateTypeFieldParams): CmsModelFieldDefinition | string | null; createGetFilters?(params: CreateGetFiltersParams): string; createListFilters?(params: CreateListFiltersParams): string; createResolver?(params: CreateResolverParams): ResolverResult; createSchema?(params: CreateSchemaParams): GraphQLSchemaDefinition; } export interface ICmsFieldManageApi extends ICmsFieldReadApi { createInputField(params: CreateTypeFieldParams): CmsModelFieldDefinition | string | null; normalizeInput?(params: NormalizeInputParams): Promise; } export interface ICmsModelFieldToGraphQL { readonly fieldType: CmsModelFieldType; readonly isSearchable: boolean; readonly isSortable: boolean; readonly isFullTextSearchable: boolean; readonly read: ICmsFieldReadApi; readonly manage: ICmsFieldManageApi; getReadApi(): ICmsFieldReadApi; getManageApi(): ICmsFieldManageApi; validateChildFields?: ValidateChildFields; getFieldAst?: GetCmsModelFieldAst; } export declare const CmsModelFieldToGraphQL: import("@webiny/di").Abstraction>; export declare namespace CmsModelFieldToGraphQL { type Interface = ICmsModelFieldToGraphQL; type ReadApi = ICmsFieldReadApi; type ManageApi = ICmsFieldManageApi; type TypeFieldParams = CreateTypeFieldParams; type GetFiltersParams = CreateGetFiltersParams; type ListFiltersParams = CreateListFiltersParams; type ResolverParams = CreateResolverParams; type SchemaParams = CreateSchemaParams; type InputNormalizeParams = NormalizeInputParams; type Resolver = ResolverResult; type ChildFieldsValidateParams = ValidateChildFieldsParams; type ChildFieldsValidate = ValidateChildFields; type ChildFieldsValidateValidate = ValidateChildFieldsValidate; }