import type { SecurityPermission, SecurityIdentity, CreatedBy } from "../../../types/security.js"; export interface AppPermissionsParams { getIdentity: () => SecurityIdentity | Promise; getPermissions: () => TPermission[] | Promise; fullAccessPermissionName?: string; } export type EnsureParams = Partial<{ rwd: string; pw: string; owns: CreatedBy; }>; export declare class AppPermissions { getIdentity: () => SecurityIdentity | Promise; getPermissions: () => TPermission[] | Promise; private fullAccessPermissions; constructor({ getIdentity, getPermissions, fullAccessPermissionName }: AppPermissionsParams); ensure(params?: EnsureParams): Promise; hasFullAccess(): Promise; canAccessNonOwnedRecords(): Promise; canAccessOnlyOwnRecords(): Promise; private hasRwd; private hasPw; /** * Filters out base `name` and `_src` properties from the permission object. */ private filterOutSystemPermissionsObjectProperties; }