import { Result } from "@webiny/feature/api"; import { ListGroupsRepository 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 { 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"; /** * ListGroupsRepository - Fetches all groups (plugin + database). * * Responsibilities: * - Create cache keys based on tenant + identity * - Provide data loader functions to GroupCache * - Fetch from plugin groups + database groups * - Apply access control filtering * - Return all accessible groups */ declare class ListGroupsRepositoryImpl implements RepositoryAbstraction.Interface { private groupCache; private pluginGroupsProvider; private storageOperations; private accessControl; private tenantContext; private identityContext; private cmsContext; constructor(groupCache: GroupCache.Interface, pluginGroupsProvider: PluginGroupsProvider.Interface, storageOperations: StorageOperations.Interface, accessControl: AccessControl.Interface, tenantContext: TenantContext.Interface, identityContext: IdentityContext.Interface, cmsContext: CmsContext.Interface); execute(): Promise>; private fetchAllGroups; } export declare const ListGroupsRepository: import("@webiny/di").Implementation; export {};