import type { ReactElement } from 'react';
import type { ResourceNode, PermissionInheritanceInfo } from '@/hooks/usePermissionMatrix';
import type { MatrixRoleDto, RoleDto } from '@/services/api/adminApi';
interface BasePermissionPopoverProps {
    readonly resource: ResourceNode;
    readonly onClose: () => void;
}
interface ReadonlyPermissionPopoverProps extends BasePermissionPopoverProps {
    readonly mode: 'readonly';
    readonly title: string;
    readonly effectivePermissions: Set<string>;
    readonly getPermissionSources: (permissionId: string) => RoleDto[];
}
interface EditablePermissionPopoverProps extends BasePermissionPopoverProps {
    readonly mode: 'editable';
    readonly role: MatrixRoleDto;
    readonly onTogglePermission: (permissionId: string) => void;
    readonly getPermissionInheritance: (roleId: string, permissionId: string) => PermissionInheritanceInfo;
}
export type PermissionPopoverProps = ReadonlyPermissionPopoverProps | EditablePermissionPopoverProps;
export declare function PermissionPopover(props: PermissionPopoverProps): ReactElement | null;
export {};
//# sourceMappingURL=PermissionPopover.d.ts.map