import { Result } from "@webiny/feature/api"; import type { CmsEntry, CmsEntryValues, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "../../../types/index.js"; import type { EntryNotAuthorizedError, EntryPersistenceError, EntryValidationError } from "../../../domain/contentEntry/errors.js"; /** * CreateEntry Use Case */ export interface ICreateEntryUseCase { execute(model: CmsModel, input: CreateCmsEntryInput, options?: CreateCmsEntryOptionsInput): Promise, UseCaseError>>; } export interface ICreateEntryUseCaseErrors { notAuthorized: EntryNotAuthorizedError; validation: EntryValidationError; repository: RepositoryError; } type UseCaseError = ICreateEntryUseCaseErrors[keyof ICreateEntryUseCaseErrors]; /** Create a new content entry. */ export declare const CreateEntryUseCase: import("@webiny/di").Abstraction; export declare namespace CreateEntryUseCase { type Interface = ICreateEntryUseCase; type Input = CreateCmsEntryInput; type Options = CreateCmsEntryOptionsInput; type Error = UseCaseError; type Return = Promise, UseCaseError>>; } /** * CreateEntryRepository - Persists a new entry to storage. * Takes a domain CmsEntry object and stores it. */ export interface ICreateEntryRepository { execute(model: CmsModel, entry: CmsEntry): Promise>; } export interface ICreateEntryRepositoryErrors { storage: EntryPersistenceError; } type RepositoryError = ICreateEntryRepositoryErrors[keyof ICreateEntryRepositoryErrors]; export declare const CreateEntryRepository: import("@webiny/di").Abstraction; export declare namespace CreateEntryRepository { type Interface = ICreateEntryRepository; type Error = RepositoryError; } export {};