import type { CmsEntry, CmsEntryPermission, CmsGroup, CmsGroupPermission, CmsModel, CmsModelPermission } from "../../types/index.js"; import type { SecurityIdentity } from "@webiny/api-core/types/security.js"; export interface AccessControlParams { getIdentity: () => Promise; getGroupsPermissions: () => Promise; getModelsPermissions: () => Promise; getEntriesPermissions: () => Promise; listAllGroups: () => Promise; } interface GetGroupsAccessControlListParams { group?: CmsGroup; } interface CanAccessGroupParams extends GetGroupsAccessControlListParams { rwd?: string; } interface GetModelsAccessControlListParams { model?: CmsModel; } interface CanAccessModelParams extends GetModelsAccessControlListParams { rwd?: string; } interface GetEntriesAccessControlListParams { model: Pick; entry?: Pick; } export interface CanAccessEntryParams extends GetEntriesAccessControlListParams { rwd?: string; pw?: string; } export declare class AccessControl { private getIdentity; private getGroupsPermissions; private getModelsPermissions; private getEntriesPermissions; private listAllGroupsCallback; private fullAccessPermissions; private allGroups; constructor({ getIdentity, getGroupsPermissions, getModelsPermissions, getEntriesPermissions, listAllGroups }: AccessControlParams); /** * Groups-related methods below. 👇 * - canAccessGroup * - ensureCanAccessGroup * - canAccessNonOwnedGroups * - canAccessOnlyOwnedGroups * - getGroupsAccessControlList * - hasFullAccessToGroups */ canAccessGroup(params?: CanAccessGroupParams): Promise; private canAccessNonOwnedGroups; private canAccessOnlyOwnedGroups; private getGroupsAccessControlList; private hasFullAccessToGroups; /** * Models-related methods below. 👇 * - canAccessModel * - ensureCanAccessModel * - canAccessNonOwnedModels * - canAccessOnlyOwnedModels * - getModelsAccessControlList * - hasFullAccessToModels */ canAccessModel(params: CanAccessModelParams): Promise; private ensureCanAccessModel; private canAccessNonOwnedModels; private canAccessOnlyOwnedModels; private getModelsAccessControlList; private hasFullAccessToModels; /** * Entries-related methods below. 👇 * - canAccessEntry * - ensureCanAccessEntry * - canAccessNonOwnedEntries * - canAccessOnlyOwnedEntries * - getEntriesAccessControlList * - hasFullAccessToEntries */ canAccessEntry(params: CanAccessEntryParams): Promise; private ensureCanAccessEntry; private canAccessNonOwnedEntries; canAccessOnlyOwnedEntries(params: GetEntriesAccessControlListParams): Promise; private getEntriesAccessControlList; private hasFullAccessToEntries; private modelAuthorizationDisabled; private listAllGroups; private getGroup; } export {};