import type { CmsDeleteEntryOptions, CmsEntry, CmsEntryGetParams, CmsEntryListParams, CmsEntryMeta, CmsEntryUniqueValue, CmsEntryValidateResponse, CmsEntryValues, CreateCmsEntryInput, CreateCmsEntryOptionsInput, CreateFromCmsEntryInput, CreateRevisionCmsEntryOptionsInput, DeleteMultipleEntriesParams, DeleteMultipleEntriesResponse, GetUniqueFieldValuesParams, UpdateCmsEntryInput, UpdateCmsEntryOptionsInput } from "./types.js"; import type { CmsModel } from "./model.js"; /** * Cms Entry CRUD methods in the context. * * @category Context * @category CmsEntry */ export interface CmsEntryContext { /** * Get a single content entry for a model. */ getEntry: (model: CmsModel, params: CmsEntryGetParams) => Promise>; /** * Get a list of entries for a model by a given ID (revision). */ getEntriesByIds: (model: CmsModel, revisions: string[]) => Promise[]>; /** * Get the entry for a model by a given ID. */ getEntryById(model: CmsModel, revision: string): Promise>; /** * List entries for a model. Internal method used by get, listLatest and listPublished. */ listEntries: (model: CmsModel, params: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>; /** * Lists the latest entries. Used for manage API. */ listLatestEntries: (model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>; /** * List published entries. Used for read API. */ listPublishedEntries: (model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>; /** * Lists the deleted entries. Used for manage API. */ listDeletedEntries: (model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>; /** * List published entries by IDs. */ getPublishedEntriesByIds: (model: CmsModel, ids: string[]) => Promise[]>; /** * List latest entries by IDs. */ getLatestEntriesByIds: (model: CmsModel, ids: string[]) => Promise[]>; /** * Create a new content entry. */ createEntry: (model: CmsModel, input: CreateCmsEntryInput, options?: CreateCmsEntryOptionsInput) => Promise>; /** * Create a new entry from already existing entry. */ createEntryRevisionFrom: (model: CmsModel, id: string, input: CreateFromCmsEntryInput, options?: CreateRevisionCmsEntryOptionsInput) => Promise>; /** * Update existing entry. */ updateEntry: (model: CmsModel, id: string, input: UpdateCmsEntryInput, options?: UpdateCmsEntryOptionsInput) => Promise>; /** * Update entry revision description. * It does not matter if the entry is published/unpublished or any other state. */ updateRevisionDescription: (model: CmsModel, id: string, revisionDescription: string | undefined) => Promise>; /** * Validate the entry - either new one or existing one. */ validateEntry: (model: CmsModel, id: string, input: UpdateCmsEntryInput) => Promise; /** * Move entry, and all its revisions, to a new folder. */ moveEntry: (model: CmsModel, id: string, folderId: string) => Promise>; /** * Method that republishes entry with given identifier. * @internal */ republishEntry: (model: CmsModel, id: string) => Promise>; /** * Delete only a certain revision of the entry. */ deleteEntryRevision: (model: CmsModel, id: string) => Promise; /** * Delete entry with all its revisions. */ deleteEntry: (model: CmsModel, id: string, options?: CmsDeleteEntryOptions) => Promise; /** * Restore entry from trash bin with all its revisions. */ restoreEntryFromBin: (model: CmsModel, id: string) => Promise>; /** * Delete multiple entries */ deleteMultipleEntries: (model: CmsModel, params: DeleteMultipleEntriesParams) => Promise; /** * Publish entry. */ publishEntry: (model: CmsModel, id: string) => Promise>; /** * Unpublish entry. */ unpublishEntry: (model: CmsModel, id: string) => Promise>; /** * Get all entry revisions. */ getEntryRevisions: (model: CmsModel, id: string) => Promise[]>; /** * List all unique values for a given field. * * @internal */ getUniqueFieldValues: (model: CmsModel, params: GetUniqueFieldValuesParams) => Promise; }