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"; /** * RepublishEntry Use Case - Republishes an already published entry. * This updates the entry and publishes it again. */ export interface IRepublishEntryUseCase { execute(model: CmsModel, id: string): Promise, UseCaseError>>; } export interface IRepublishEntryUseCaseErrors { notAuthorized: EntryNotAuthorizedError; notFound: EntryNotFoundError; storage: EntryPersistenceError; } type UseCaseError = IRepublishEntryUseCaseErrors[keyof IRepublishEntryUseCaseErrors]; /** Republish a content entry. */ export declare const RepublishEntryUseCase: import("@webiny/di").Abstraction; export declare namespace RepublishEntryUseCase { type Interface = IRepublishEntryUseCase; type Error = UseCaseError; type Return = Promise, UseCaseError>>; } /** * Payload for before republish event */ export interface EntryBeforeRepublishEventPayload { entry: CmsEntry; model: CmsModel; } /** * Payload for after republish event */ export interface EntryAfterRepublishEventPayload { entry: CmsEntry; model: CmsModel; } /** * Payload for republish error event */ export interface EntryRepublishErrorEventPayload { entry: CmsEntry; model: CmsModel; error: Error; } /** * RepublishEntryRepository - Handles storage operations for republishing entries. */ export interface IRepublishEntryRepository { execute(model: CmsModel, entry: CmsEntry): Promise, RepositoryError>>; } export interface IRepublishEntryRepositoryErrors { storage: EntryPersistenceError; } type RepositoryError = IRepublishEntryRepositoryErrors[keyof IRepublishEntryRepositoryErrors]; export declare const RepublishEntryRepository: import("@webiny/di").Abstraction; export declare namespace RepublishEntryRepository { type Interface = IRepublishEntryRepository; type Error = RepositoryError; } export {};