import { type CrudAction } from "../../../../fd-toolbox/enums/enums";
import { type PermissionLevel } from "../../core/resources/enums/permission-enums";
import { WithId } from "../../../../fd-toolbox-core/types/resource-with-id";
import { UserPermissionList } from "../../core/types/user-permission";
import { ResourceMeta } from "../../core/resource-meta";
import { WithIdAndOptionalUserId } from "../../../../fd-toolbox/base-resource/with-optional-user-id-and-id";
/** @monorepo-internal */
export declare function loadPermissions(userPermissions?: UserPermissionList): Promise<void>;
/** @monorepo-internal */
export declare function setPermissions(userPermissions: UserPermissionList): void;
/** @monorepo-internal */
export declare function removePermissions(): void;
/** @monorepo-internal */
export declare function hasPermission(permissionName: string, permissionLevel?: PermissionLevel): boolean;
/** @monorepo-internal */
export declare function hasResourcePermission(resourceId: string, crudAction: CrudAction, permissionLevel?: PermissionLevel): boolean;
export declare function hasPropertyPermission(resourcePropertyId: string, crudAction: CrudAction, permissionLevel?: PermissionLevel, resourceMeta?: ResourceMeta, withId?: WithIdAndOptionalUserId): boolean;
export declare function hasCrudPermission(crudAction: CrudAction, resourceMeta: ResourceMeta, withId?: WithId): boolean;
export declare function isBelowLevelCouldBeAllowedByUserId(crudAction: CrudAction, resourceMeta: ResourceMeta): boolean;
export declare function notifyCrudPermissionError(crudAction: CrudAction): void;
