import type bunyan from 'bunyan';
import { ApiConfig, AuthenticationClient } from '@ministryofjustice/hmpps-rest-client';
import { TelemetryClient } from 'applicationinsights';
import Prisoner from '../../data/hmppsPrisonerSearch/interfaces/Prisoner';
import { HmppsUser } from '../../types/internal/user/HmppsUser';
import PermissionsLogger from './PermissionsLogger';
import { PrisonerPermission, PrisonerPermissions } from '../../types/public/permissions/prisoner/PrisonerPermissions';
export default class PermissionsService {
    private readonly prisonerSearchClient;
    readonly permissionsLogger: PermissionsLogger;
    static create({ prisonerSearchConfig, authenticationClient, logger, telemetryClient, }: {
        prisonerSearchConfig: ApiConfig;
        authenticationClient: AuthenticationClient;
        logger?: bunyan | typeof console;
        telemetryClient?: TelemetryClient;
    }): PermissionsService;
    private constructor();
    getPrisonerPermissions({ user, prisoner, requestDependentOn, }: {
        user: HmppsUser;
        prisoner: Prisoner;
        requestDependentOn: PrisonerPermission[];
    }): PrisonerPermissions;
    getPrisonerDetails(prisonerNumber: string): Promise<Prisoner>;
}
