import { Result } from "@webiny/feature/api"; import type { CmsEntry, CmsEntryValues, CmsModel } from "../../../types/index.js"; import type { EntryNotAuthorizedError, EntryNotFoundError, EntryPersistenceError, EntryValidationError } from "../../../domain/contentEntry/errors.js"; /** * PublishEntry Use Case - Publishes an entry revision. */ export interface IPublishEntryUseCase { execute(model: CmsModel, id: string): Promise, UseCaseError>>; } export interface IPublishEntryUseCaseErrors { notAuthorized: EntryNotAuthorizedError; notFound: EntryNotFoundError; validation: EntryValidationError; storage: EntryPersistenceError; } type UseCaseError = IPublishEntryUseCaseErrors[keyof IPublishEntryUseCaseErrors]; /** Publish a content entry. */ export declare const PublishEntryUseCase: import("@webiny/di").Abstraction; export declare namespace PublishEntryUseCase { type Interface = IPublishEntryUseCase; type Error = UseCaseError; type Return = Promise, UseCaseError>>; } /** * Payload for before publish event */ export interface EntryBeforePublishEventPayload { entry: CmsEntry; original: CmsEntry; model: CmsModel; } /** * Payload for after publish event */ export interface EntryAfterPublishEventPayload { entry: CmsEntry; original: CmsEntry; model: CmsModel; } /** * Payload for publish error event */ export interface EntryPublishErrorEventPayload { entry: CmsEntry; original: CmsEntry; model: CmsModel; error: Error; } /** * PublishEntryRepository - Handles storage operations for publishing entries. */ export interface IPublishEntryRepository { execute(model: CmsModel, entry: CmsEntry): Promise, RepositoryError>>; } export interface IPublishEntryRepositoryErrors { storage: EntryPersistenceError; } type RepositoryError = IPublishEntryRepositoryErrors[keyof IPublishEntryRepositoryErrors]; export declare const PublishEntryRepository: import("@webiny/di").Abstraction; export declare namespace PublishEntryRepository { type Interface = IPublishEntryRepository; type Error = RepositoryError; } export {};