import { Result } from "@webiny/feature/api"; import { DeleteEntryRevisionUseCase as UseCaseAbstraction } from "./abstractions.js"; import { DeleteEntryRevisionRepository } from "./abstractions.js"; import { AccessControl } from "../../../features/shared/abstractions.js"; import { GetRevisionByIdUseCase } from "../../../features/contentEntry/GetRevisionById/index.js"; import { GetLatestRevisionByEntryIdIncludingDeletedUseCase } from "../../../features/contentEntry/GetLatestRevisionByEntryId/index.js"; import { GetPreviousRevisionByEntryIdUseCase } from "../../../features/contentEntry/GetPreviousRevisionByEntryId/index.js"; import { DeleteEntryUseCase } from "../../../features/contentEntry/DeleteEntry/index.js"; import type { CmsModel } from "../../../types/index.js"; import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js"; /** * DeleteEntryRevisionUseCase - Orchestrates deletion of a specific entry revision. * * Responsibilities: * - Parse revision ID to extract entry ID and version * - Apply access control * - Get the revision to delete * - Determine if this is the latest revision * - If latest and no previous revision exists, perform full entry delete * - If latest and previous exists, set previous as new latest * - Publish domain events * - Delegate to repository for storage operations */ declare class DeleteEntryRevisionUseCaseImpl implements UseCaseAbstraction.Interface { private repository; private accessControl; private getRevisionById; private getLatestRevision; private getPreviousRevision; private deleteEntry; private eventPublisher; constructor(repository: DeleteEntryRevisionRepository.Interface, accessControl: AccessControl.Interface, getRevisionById: GetRevisionByIdUseCase.Interface, getLatestRevision: GetLatestRevisionByEntryIdIncludingDeletedUseCase.Interface, getPreviousRevision: GetPreviousRevisionByEntryIdUseCase.Interface, deleteEntry: DeleteEntryUseCase.Interface, eventPublisher: EventPublisher.Interface); execute(model: CmsModel, revisionId: string): Promise>; } export declare const DeleteEntryRevisionUseCase: import("@webiny/di").Implementation; export {};