export declare const ADMIN_ROLE = "admin"; export declare const ADMIN_PANEL_PERMISSIONS: readonly ["users.view", "users.manage", "platform.configure", "platform.view_logs", "plugins.configure", "plugins.install", "notices.publish"]; export type AccessAudience = 'all' | 'admin' | 'user'; export type AccessAudienceInput = AccessAudience | readonly AccessAudience[]; export interface RoleInfo { id?: number; slug: string; name?: string; color?: string; permissions?: readonly string[] | null; project_scope?: 'all' | 'assigned' | string; plugin_access?: readonly string[] | 'all' | null; } export interface PermissionUser { role?: string | null; role_obj?: RoleInfo | null; roleObj?: RoleInfo | null; permissions?: readonly string[] | null; } export interface AccessPolicy { audience?: AccessAudienceInput; visibleFor?: AccessAudienceInput; requiresAuth?: boolean; requiresAdmin?: boolean; permissions?: readonly string[]; anyPermissions?: readonly string[]; plugin?: string; } /** An object that carries an access rule in its nested `access` policy. */ export interface AccessControlled { access?: AccessPolicy; } export declare function getRoleInfo(user: PermissionUser | null | undefined): RoleInfo | null; export declare function isAdminRole(role: string | null | undefined): boolean; export declare function isAdminUser(user: PermissionUser | null | undefined): boolean; export declare function getAccessAudience(user: PermissionUser | null | undefined): Exclude; export declare function getUserPermissions(user: PermissionUser | null | undefined): string[]; export declare function hasAllPermissions(user: PermissionUser | null | undefined, permissions?: readonly string[]): boolean; export declare function hasAnyPermission(user: PermissionUser | null | undefined, permissions?: readonly string[]): boolean; export declare function canAccessAdmin(user: PermissionUser | null | undefined): boolean; export declare function canAccessPlugin(user: PermissionUser | null | undefined, pluginName: string | null | undefined): boolean; export declare function canAccessByPolicy(user: PermissionUser | null | undefined, policy?: AccessPolicy, isAuthenticated?: boolean): boolean;