import { Module, type StringMap } from "@intuitionrobotics/ts-common"; import { type ServerApi_Middleware } from "@intuitionrobotics/thunderstorm/backend"; import { type Base_AccessLevels, type DB_PermissionAccessLevel, type DB_PermissionApi, type DB_PermissionsGroup, type DB_PermissionsUser, type User_Group } from "../../index.js"; export type UserCalculatedAccessLevel = { [domainId: string]: number; }; export type GroupPairWithBaseLevelsObj = { accessLevels: Base_AccessLevels[]; customFields: StringMap[]; }; export type RequestPairWithLevelsObj = { accessLevels: DB_PermissionAccessLevel[]; customFields: StringMap[]; }; type Config = { strictMode?: boolean; }; export declare class PermissionsAssert_Class extends Module { constructor(); readonly Middleware: (keys: string[]) => ServerApi_Middleware; readonly CustomMiddleware: (keys: string[], action: (projectId: string, customFields: StringMap) => Promise) => ServerApi_Middleware; assertUserPermissions(projectId: string, path: string, userId: string, requestCustomField: StringMap): Promise; _assertUserPermissionsImpl(apiDetails: { apiDb: DB_PermissionApi; requestPermissions: DB_PermissionAccessLevel[]; }, projectId: string, userDetails: { user: DB_PermissionsUser; userGroups: DB_PermissionsGroup[]; }, requestCustomField: StringMap): void; assertUserSharingGroup(granterUserId: string, userGroup: User_Group): Promise; assertUserPermissionsImpl(userGroups: DB_PermissionsGroup[], requestPermissions: DB_PermissionAccessLevel[], requestCustomFields: StringMap[]): void; getUserDetails(uuid: string): Promise<{ user: DB_PermissionsUser; userGroups: DB_PermissionsGroup[]; }>; private getCombineUserGroupCF; private getCombineUserGroups; getApiDetails(_path: string, projectId: string): Promise<{ apiDb: DB_PermissionApi; requestPermissions: DB_PermissionAccessLevel[]; }>; getApisDetails(urls: string[], projectId: string): Promise<({ apiDb: DB_PermissionApi; requestPermissions: DB_PermissionAccessLevel[]; } | undefined)[]>; private getAccessLevels; isMatchWithLevelsObj(groupPair: GroupPairWithBaseLevelsObj, requestPair: RequestPairWithLevelsObj): boolean; private getDomainLevelMap; doesCustomFieldsSatisfies(groupCustomFields: StringMap[] | undefined, requestCustomField: StringMap): boolean; private doesCustomFieldSatisfies; private getRegEx; } export declare const PermissionsAssert: PermissionsAssert_Class; export {}; //# sourceMappingURL=permissions-assert.d.ts.map