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