import { Result } from "@webiny/feature/api"; import type { CmsGroup, CmsGroupUpdateInput } from "../../../types/index.js"; import type { GroupCannotUpdateCodeDefinedError, GroupPersistenceError, GroupValidationError } from "../../../domain/contentModelGroup/errors.js"; import { GroupNotAuthorizedError, type GroupNotFoundError } from "../../../domain/contentModelGroup/errors.js"; /** * UpdateGroup Use Case */ export interface IUpdateGroupUseCase { execute(groupId: string, input: CmsGroupUpdateInput): Promise>; } export interface IUpdateGroupUseCaseErrors { notFound: GroupNotFoundError; notAuthorized: GroupNotAuthorizedError; validation: GroupValidationError; repository: RepositoryError; } type UseCaseError = IUpdateGroupUseCaseErrors[keyof IUpdateGroupUseCaseErrors]; /** Update a content model group. */ export declare const UpdateGroupUseCase: import("@webiny/di").Abstraction; export declare namespace UpdateGroupUseCase { type Interface = IUpdateGroupUseCase; type Input = CmsGroupUpdateInput; type Error = UseCaseError; type Return = Promise>; } /** * UpdateGroupRepository - Persists group updates to storage. */ export interface IUpdateGroupRepository { execute(group: CmsGroup): Promise>; } export interface IUpdateGroupRepositoryErrors { cannotUpdate: GroupCannotUpdateCodeDefinedError; storage: GroupPersistenceError; } type RepositoryError = IUpdateGroupRepositoryErrors[keyof IUpdateGroupRepositoryErrors]; export declare const UpdateGroupRepository: import("@webiny/di").Abstraction; export declare namespace UpdateGroupRepository { type Interface = IUpdateGroupRepository; type Error = RepositoryError; } export {};