import { Result } from "@webiny/feature/api"; import { UpdateModelRepository as RepositoryAbstraction } from "./abstractions.js"; import { ModelCache, ModelsFetcher } from "../../../features/contentModel/shared/abstractions.js"; import { CmsContext, StorageOperations } from "../../../features/shared/abstractions.js"; import type { CmsModel } from "../../../types/index.js"; import { ModelFieldCompression } from "../../../features/contentModel/ModelFieldCompression/index.js"; /** * UpdateModelRepository - Validates domain rules and persists model updates. * * Responsibilities: * - Validate API name endings * - Validate singularApiName uniqueness (excluding current model) * - Validate pluralApiName uniqueness (excluding current model) * - Validate model fields * - Persist to storage * - Clear ModelCache after successful update */ declare class UpdateModelRepositoryImpl implements RepositoryAbstraction.Interface { private readonly modelCache; private readonly modelsFetcher; private readonly storageOperations; private readonly cmsContext; private readonly modelFieldCompression; constructor(modelCache: ModelCache.Interface, modelsFetcher: ModelsFetcher.Interface, storageOperations: StorageOperations.Interface, cmsContext: CmsContext.Interface, modelFieldCompression: ModelFieldCompression.Interface); execute(model: CmsModel, original: CmsModel): Promise>; } export declare const UpdateModelRepository: typeof UpdateModelRepositoryImpl & { __abstraction: import("@webiny/di").Abstraction; }; export {};