import { Result } from "@webiny/feature/api"; import type { CmsGroup } from "../../../types/index.js"; import type { GroupCannotDeleteCodeDefinedError, GroupHasModelsError, GroupNotAuthorizedError, GroupNotFoundError, GroupPersistenceError } from "../../../domain/contentModelGroup/errors.js"; /** * DeleteGroup Use Case */ export interface IDeleteGroupUseCase { execute(groupId: string): Promise>; } export interface IDeleteGroupUseCaseErrors { notFound: GroupNotFoundError; notAuthorized: GroupNotAuthorizedError; repository: RepositoryError; } type UseCaseError = IDeleteGroupUseCaseErrors[keyof IDeleteGroupUseCaseErrors]; /** Delete a content model group. */ export declare const DeleteGroupUseCase: import("@webiny/di").Abstraction; export declare namespace DeleteGroupUseCase { type Interface = IDeleteGroupUseCase; type Error = UseCaseError; type Return = Promise>; } /** * DeleteGroupRepository - Validates and persists group deletion. */ export interface IDeleteGroupRepository { execute(group: CmsGroup): Promise>; } export interface IDeleteGroupRepositoryErrors { cannotDelete: GroupCannotDeleteCodeDefinedError; hasModels: GroupHasModelsError; storage: GroupPersistenceError; } type RepositoryError = IDeleteGroupRepositoryErrors[keyof IDeleteGroupRepositoryErrors]; export declare const DeleteGroupRepository: import("@webiny/di").Abstraction; export declare namespace DeleteGroupRepository { type Interface = IDeleteGroupRepository; type Error = RepositoryError; } export {};