import { Result } from "@webiny/feature/api"; import { CreateGroupUseCase as UseCaseAbstraction } from "./abstractions.js"; import { CreateGroupRepository } from "./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 { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js"; import { CmsContext } from "../../../features/shared/abstractions.js"; import type { CmsGroup } from "../../../types/index.js"; import type { CmsGroupCreateInput } from "../../../types/index.js"; /** * CreateGroupUseCase - Orchestrates group creation. * * Responsibilities: * - Validate input (Zod) * - Create domain group object * - Access control checks * - Publish before event * - Delegate to repository * - Publish after event or error event */ declare class CreateGroupUseCaseImpl implements UseCaseAbstraction.Interface { private eventPublisher; private repository; private accessControl; private tenantContext; private identityContext; private cmsContext; constructor(eventPublisher: EventPublisher.Interface, repository: CreateGroupRepository.Interface, accessControl: AccessControl.Interface, tenantContext: TenantContext.Interface, identityContext: IdentityContext.Interface, cmsContext: CmsContext.Interface); execute(input: CmsGroupCreateInput): Promise>; } export declare const CreateGroupUseCase: import("@webiny/di").Implementation; export {};