import { Result } from "@webiny/feature/api"; import type { CmsModel } from "../../../types/index.js"; import { ModelCannotDeleteCodeModelError, ModelCannotDeleteHasEntriesError, ModelCannotDeleteHasEntriesInTrashError, ModelNotAuthorizedError, type ModelNotFoundError, type ModelPersistenceError, type ModelValidationError } from "../../../domain/contentModel/errors.js"; /** * DeleteModel Use Case */ export interface IDeleteModelUseCase { execute(modelId: string): Promise>; } export interface IDeleteModelUseCaseErrors { notFound: ModelNotFoundError; notAuthorized: ModelNotAuthorizedError; persistence: ModelPersistenceError; validation: ModelValidationError; codeModel: ModelCannotDeleteCodeModelError; hasEntries: ModelCannotDeleteHasEntriesError; hasEntriesInTrash: ModelCannotDeleteHasEntriesInTrashError; } type UseCaseError = IDeleteModelUseCaseErrors[keyof IDeleteModelUseCaseErrors]; /** Delete a content model. */ export declare const DeleteModelUseCase: import("@webiny/di").Abstraction; export declare namespace DeleteModelUseCase { type Interface = IDeleteModelUseCase; type Error = UseCaseError; type Return = Promise>; } /** * DeleteModelRepository - Validates and deletes a model from storage. */ export interface IDeleteModelRepository { execute(model: CmsModel): Promise>; } export interface IDeleteModelRepositoryErrors { validation: ModelValidationError; persistence: ModelPersistenceError; codeModel: ModelCannotDeleteCodeModelError; } type RepositoryError = IDeleteModelRepositoryErrors[keyof IDeleteModelRepositoryErrors]; export declare const DeleteModelRepository: import("@webiny/di").Abstraction; export declare namespace DeleteModelRepository { type Interface = IDeleteModelRepository; type Error = RepositoryError; } export {};