import { Result } from "@webiny/feature/api"; import { DeleteModelUseCase as UseCaseAbstraction } from "./abstractions.js"; import { DeleteModelRepository } from "./abstractions.js"; import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js"; import { AccessControl } from "../../../features/shared/abstractions.js"; import { GetModelUseCase } from "../../../features/contentModel/GetModel/index.js"; /** * DeleteModelUseCase - Core model deletion orchestration. * * Responsibilities: * - Fetch model * - Access control checks * - Publish before event * - Delegate to repository for deletion * - Publish after event or error event * * Note: Validation (e.g., checking for entries, plugin models) should be done in event handlers */ declare class DeleteModelUseCaseImpl implements UseCaseAbstraction.Interface { private getModelUseCase; private eventPublisher; private repository; private accessControl; constructor(getModelUseCase: GetModelUseCase.Interface, eventPublisher: EventPublisher.Interface, repository: DeleteModelRepository.Interface, accessControl: AccessControl.Interface); execute(modelId: string): Promise>; } export declare const DeleteModelUseCase: typeof DeleteModelUseCaseImpl & { __abstraction: import("@webiny/di").Abstraction; }; export {};