import { Result } from "@webiny/feature/api"; import { CreateGroupRepository as RepositoryAbstraction } from "./abstractions.js"; import { GroupCache } from "../../../features/contentModelGroup/shared/abstractions.js"; import { PluginGroupsProvider } from "../../../features/contentModelGroup/shared/abstractions.js"; import { StorageOperations } from "../../../features/shared/abstractions.js"; import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js"; import type { CmsGroup } from "../../../types/index.js"; /** * CreateGroupRepository - Validates and persists a new group. * * Responsibilities: * - Validate ID uniqueness (if provided) * - Validate slug uniqueness (or generate unique slug) * - Check for plugin group conflicts * - Persist to storage * - Clear GroupCache after successful create */ declare class CreateGroupRepositoryImpl implements RepositoryAbstraction.Interface { private groupCache; private pluginGroupsProvider; private storageOperations; private tenantContext; constructor(groupCache: GroupCache.Interface, pluginGroupsProvider: PluginGroupsProvider.Interface, storageOperations: StorageOperations.Interface, tenantContext: TenantContext.Interface); execute(group: CmsGroup): Promise>; private isSlugTaken; } export declare const CreateGroupRepository: import("@webiny/di").Implementation; export {};