import { HmppsUser } from '../../../types/internal/user/HmppsUser';
import { PrisonerPermission, PrisonerPermissions } from '../../../types/public/permissions/prisoner/PrisonerPermissions';
import { Role } from '../../../types/internal/user/Role';
import { PermissionCheckStatus } from '../../../types/internal/permissions/PermissionCheckStatus';
import PrisonerPermissionsContext from '../../../types/internal/permissions/PrisonerPermissionsContext';
import Prisoner from '../../../data/hmppsPrisonerSearch/interfaces/Prisoner';
export declare function isRequiredPermission(permission: PrisonerPermission, requiredPermissions: PrisonerPermission[]): boolean;
export declare function logDeniedPermissionCheck(permission: PrisonerPermission, context: PrisonerPermissionsContext, status: PermissionCheckStatus): void;
export declare const isActiveCaseLoad: (prisonId: string | undefined, user: HmppsUser) => boolean;
export declare function isInUsersCaseLoad(prisonId: string | undefined, user: HmppsUser): boolean;
export declare const isReleased: (prisoner: Prisoner) => boolean;
export declare const isTransferring: (prisoner: Prisoner) => boolean;
export declare function isReleasedOrTransferring(prisoner: Prisoner): boolean;
export declare const wasReleasedWithinThreeYears: (prisoner: Prisoner) => boolean;
export declare function userHasSomeRolesFrom(rolesToCheck: Role[], user: HmppsUser): boolean;
export declare function userHasAllRoles(rolesToCheck: Role[], user: HmppsUser): boolean;
export declare const userHasRole: (roleToCheck: Role, user: HmppsUser) => boolean;
export declare function setPrisonerPermission(permission: PrisonerPermission, permitted: boolean, permissions: PrisonerPermissions): PrisonerPermissions;
export declare function upgradePermissions(basePermissions: PrisonerPermissions, additionalPermissions: PrisonerPermissions): PrisonerPermissions;
