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"; /** * MoveEntry Use Case - Moves an entry to a different folder. */ export interface IMoveEntryUseCase { execute(model: CmsModel, id: string, folderId: string): Promise, UseCaseError>>; } export interface IMoveEntryUseCaseErrors { notAuthorized: EntryNotAuthorizedError; notFound: EntryNotFoundError; storage: EntryPersistenceError; } type UseCaseError = IMoveEntryUseCaseErrors[keyof IMoveEntryUseCaseErrors]; /** Move a content entry to a different folder. */ export declare const MoveEntryUseCase: import("@webiny/di").Abstraction; export declare namespace MoveEntryUseCase { type Interface = IMoveEntryUseCase; type Error = UseCaseError; type Return = Promise, UseCaseError>>; } /** * Payload for before move event */ export interface EntryBeforeMoveEventPayload { entry: CmsEntry; model: CmsModel; folderId: string; } /** * Payload for after move event */ export interface EntryAfterMoveEventPayload { entry: CmsEntry; model: CmsModel; folderId: string; } /** * Payload for move error event */ export interface EntryMoveErrorEventPayload { entry: CmsEntry; model: CmsModel; folderId: string; error: Error; } /** * MoveEntryRepository - Handles storage operations for moving entries. */ export interface IMoveEntryRepository { execute(model: CmsModel, id: string, folderId: string): Promise>; } export interface IMoveEntryRepositoryErrors { storage: EntryPersistenceError; } type RepositoryError = IMoveEntryRepositoryErrors[keyof IMoveEntryRepositoryErrors]; export declare const MoveEntryRepository: import("@webiny/di").Abstraction; export declare namespace MoveEntryRepository { type Interface = IMoveEntryRepository; type Error = RepositoryError; } export {};