import { Result } from "@webiny/feature/api"; import { UpdateGroupUseCase as UseCaseAbstraction } from "./abstractions.js"; import { UpdateGroupRepository } from "./abstractions.js"; import { GetGroupUseCase } from "../../../features/contentModelGroup/GetGroup/abstractions.js"; import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js"; import { AccessControl } from "../../../features/shared/abstractions.js"; import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js"; import type { CmsGroup } from "../../../types/index.js"; import type { CmsGroupUpdateInput } from "../../../types/index.js"; /** * UpdateGroupUseCase - Orchestrates group updates. * * Responsibilities: * - Fetch original group * - Access control checks * - Validate input (Zod) * - Skip if no changes * - Merge changes * - Publish before event * - Delegate to repository * - Publish after event or error event */ declare class UpdateGroupUseCaseImpl implements UseCaseAbstraction.Interface { private eventPublisher; private repository; private getGroupUseCase; private accessControl; private tenantContext; constructor(eventPublisher: EventPublisher.Interface, repository: UpdateGroupRepository.Interface, getGroupUseCase: GetGroupUseCase.Interface, accessControl: AccessControl.Interface, tenantContext: TenantContext.Interface); execute(groupId: string, input: CmsGroupUpdateInput): Promise>; } export declare const UpdateGroupUseCase: import("@webiny/di").Implementation; export {};