import { Result } from "@webiny/feature/api"; import type { CmsEntry, CmsEntryValues, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "../../../types/index.js"; import type { EntryNotAuthorizedError, EntryNotFoundError, EntryPersistenceError, EntryValidationError } from "../../../domain/contentEntry/errors.js"; /** * CreateEntryRevisionFrom Use Case - Creates a new revision from an existing entry. */ export interface ICreateEntryRevisionFromUseCase { execute(model: CmsModel, sourceId: string, input: CreateCmsEntryInput, options?: CreateCmsEntryOptionsInput): Promise, UseCaseError>>; } export interface ICreateEntryRevisionFromUseCaseErrors { notAuthorized: EntryNotAuthorizedError; notFound: EntryNotFoundError; validation: EntryValidationError; storage: EntryPersistenceError; } type UseCaseError = ICreateEntryRevisionFromUseCaseErrors[keyof ICreateEntryRevisionFromUseCaseErrors]; /** Create a new entry revision from an existing one. */ export declare const CreateEntryRevisionFromUseCase: import("@webiny/di").Abstraction; export declare namespace CreateEntryRevisionFromUseCase { type Interface = ICreateEntryRevisionFromUseCase; type Input = CreateCmsEntryInput; type Options = CreateCmsEntryOptionsInput; type Return = Promise, UseCaseError>>; type Error = UseCaseError; } /** * Payload for before create revision event */ export interface EntryRevisionBeforeCreateEventPayload { entry: CmsEntry; model: CmsModel; input: CreateCmsEntryInput; original: CmsEntry; } /** * Payload for after create revision event */ export interface EntryRevisionAfterCreateEventPayload { entry: CmsEntry; model: CmsModel; input: CreateCmsEntryInput; original: CmsEntry; } /** * Payload for create revision error event */ export interface EntryRevisionCreateErrorEventPayload { entry: CmsEntry; model: CmsModel; input: CreateCmsEntryInput; original: CmsEntry; error: Error; } /** * CreateEntryRevisionFromRepository - Handles storage operations for creating entry revisions. */ export interface ICreateEntryRevisionFromRepository { execute(model: CmsModel, entry: CmsEntry): Promise, RepositoryError>>; } export interface ICreateEntryRevisionFromRepositoryErrors { storage: EntryPersistenceError; } type RepositoryError = ICreateEntryRevisionFromRepositoryErrors[keyof ICreateEntryRevisionFromRepositoryErrors]; export declare const CreateEntryRevisionFromRepository: import("@webiny/di").Abstraction; export declare namespace CreateEntryRevisionFromRepository { type Interface = ICreateEntryRevisionFromRepository; type Error = RepositoryError; } export {};