import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
import { NormalizedPermission, PermissionAction } from '@memberjunction/core';
import { ResourceData } from '@memberjunction/core-entities';
import { BaseResourceComponent } from '@memberjunction/ng-shared';
import { PermissionsDomainGroup, PermissionsUserOption } from './permissions-shared';
import * as i0 from "@angular/core";
/**
 * User Access Report resource — one of three tabs in the Permissions admin application.
 * Lets an admin pick any user and see every resource that user has access to across
 * every registered permission domain. Powered by `PermissionEngine.GetAllUserPermissions`.
 */
export declare class PermissionsUserAccessResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {
    private cdr;
    Users: PermissionsUserOption[];
    SelectedUserId: string | null;
    SelectedUserRoles: string[];
    DomainGroups: PermissionsDomainGroup[];
    IsLoadingUsers: boolean;
    IsLoadingPermissions: boolean;
    ErrorMessage: string | null;
    constructor(cdr: ChangeDetectorRef);
    GetResourceDisplayName(_data: ResourceData): Promise<string>;
    GetResourceIconClass(_data: ResourceData): Promise<string>;
    ngOnInit(): Promise<void>;
    ngOnDestroy(): void;
    loadUsers(): Promise<void>;
    OnUserChanged(userId: string): Promise<void>;
    private loadPermissionsForSelectedUser;
    ToggleGroup(group: PermissionsDomainGroup): void;
    TrackByDomain(_index: number, group: PermissionsDomainGroup): string;
    TrackByPermission(_index: number, row: NormalizedPermission): string;
    ActionsLabel(actions: PermissionAction[]): string;
    get TotalCount(): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<PermissionsUserAccessResourceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PermissionsUserAccessResourceComponent, "mj-permissions-user-access-resource", never, {}, {}, never, never, false, never>;
}
/** Tree-shaking prevention — referenced from `public-api.ts`. */
export declare function LoadPermissionsUserAccessResource(): void;
//# sourceMappingURL=user-access-resource.component.d.ts.map