import { z } from "zod"; import { Abstraction } from "@webiny/di"; import type { IPrivateCmsModelConfiguration } from "./PrivateCmsModelBuilder.js"; import type { FieldDefinitionsFactory } from "./FieldDefinitionsBuilder.js"; import { type TextFieldBuilder, type ObjectFieldBuilder, FieldBuilder } from "./FieldBuilder.js"; import type { BaseModel, IModelData } from "../../models/base/BaseModel.js"; /** * Field Builder Registry - provides field builders */ export interface IFieldBuilderRegistry { text(): TextFieldBuilder; object>(fields: (registry: IFieldBuilderRegistry) => { [K in keyof TShape]: FieldBuilder; }): ObjectFieldBuilder; } export declare const FieldBuilderRegistry: Abstraction; /** * Private CMS Model Builder - builds CMS model configurations */ export interface IPrivateCmsModelBuilder { create>(modelId: string, fieldDefinitions: FieldDefinitionsFactory): IPrivateCmsModelConfiguration; } export declare const PrivateCmsModelBuilder: Abstraction; export declare namespace PrivateCmsModelBuilder { type Interface = IPrivateCmsModelBuilder; } /** * CMS Model Builder - builds the model configuration for a specific model */ export interface ICmsModelBuilder> { buildCmsModel(): Promise>; } /** * CMS Model Factory - creates model instances */ export interface ICmsModelFactory> { create(data: IModelData): Promise; }