import { Result } from "@webiny/feature/api"; import type { CmsEntry, CmsEntryValues, CmsModel } from "../../../types/index.js"; import type { EntryNotAuthorizedError, EntryNotFoundError, EntryPersistenceError } from "../../../domain/contentEntry/errors.js"; /** * RestoreEntryFromBin Use Case - Restores a soft-deleted entry from the bin. * This clears the wbyDeleted flag and restores the entry to its original folder. */ export interface IRestoreEntryFromBinUseCase { execute(model: CmsModel, id: string): Promise, UseCaseError>>; } export interface IRestoreEntryFromBinUseCaseErrors { notAuthorized: EntryNotAuthorizedError; notFound: EntryNotFoundError; storage: EntryPersistenceError; } type UseCaseError = IRestoreEntryFromBinUseCaseErrors[keyof IRestoreEntryFromBinUseCaseErrors]; /** Restore a content entry from the recycle bin. */ export declare const RestoreEntryFromBinUseCase: import("@webiny/di").Abstraction; export declare namespace RestoreEntryFromBinUseCase { type Interface = IRestoreEntryFromBinUseCase; type Error = UseCaseError; type Return = Promise, UseCaseError>>; } /** * Payload for before restore event */ export interface EntryBeforeRestoreFromBinEventPayload { entry: CmsEntry; model: CmsModel; } /** * Payload for after restore event */ export interface EntryAfterRestoreFromBinEventPayload { entry: CmsEntry; model: CmsModel; } /** * Payload for restore error event */ export interface EntryRestoreFromBinErrorEventPayload { entry: CmsEntry; model: CmsModel; error: Error; } /** * RestoreEntryFromBinRepository - Handles storage operations for restoring entries from bin. */ export interface IRestoreEntryFromBinRepository { execute(model: CmsModel, entry: CmsEntry): Promise, RepositoryError>>; } export interface IRestoreEntryFromBinRepositoryErrors { storage: EntryPersistenceError; } type RepositoryError = IRestoreEntryFromBinRepositoryErrors[keyof IRestoreEntryFromBinRepositoryErrors]; export declare const RestoreEntryFromBinRepository: import("@webiny/di").Abstraction; export declare namespace RestoreEntryFromBinRepository { type Interface = IRestoreEntryFromBinRepository; type Error = RepositoryError; } export {};