import { Result } from "@webiny/feature/api"; import type { CmsEntry, CmsModel } from "../../../types/index.js"; import type { EntryNotAuthorizedError, EntryNotFoundError, EntryPersistenceError } from "../../../domain/contentEntry/errors.js"; /** * DeleteEntryRevision Use Case - Deletes a specific revision of an entry. * Handles special cases like deleting the latest revision. */ export interface IDeleteEntryRevisionUseCase { execute(model: CmsModel, revisionId: string): Promise>; } export interface IDeleteEntryRevisionUseCaseErrors { notAuthorized: EntryNotAuthorizedError; notFound: EntryNotFoundError; storage: EntryPersistenceError; } type UseCaseError = IDeleteEntryRevisionUseCaseErrors[keyof IDeleteEntryRevisionUseCaseErrors]; /** Delete a specific entry revision. */ export declare const DeleteEntryRevisionUseCase: import("@webiny/di").Abstraction; export declare namespace DeleteEntryRevisionUseCase { type Interface = IDeleteEntryRevisionUseCase; type Error = UseCaseError; type Return = Promise>; } /** * Payload for before delete event */ export interface EntryRevisionBeforeDeletePayload { entry: CmsEntry; model: CmsModel; } /** * Payload for after delete event */ export interface EntryRevisionAfterDeletePayload { entry: CmsEntry; model: CmsModel; } /** * Payload for delete error event */ export interface EntryRevisionDeleteErrorPayload { entry: CmsEntry; model: CmsModel; error: Error; } /** * DeleteEntryRevisionRepository - Handles storage operations for deleting entry revisions. */ export interface IDeleteEntryRevisionRepository { execute(params: { model: CmsModel; entry: CmsEntry; latestEntry: CmsEntry | null; }): Promise>; } export interface IDeleteEntryRevisionRepositoryErrors { storage: EntryPersistenceError; } type RepositoryError = IDeleteEntryRevisionRepositoryErrors[keyof IDeleteEntryRevisionRepositoryErrors]; export declare const DeleteEntryRevisionRepository: import("@webiny/di").Abstraction; export declare namespace DeleteEntryRevisionRepository { type Interface = IDeleteEntryRevisionRepository; type Error = RepositoryError; } export {};