import { Repository } from 'typeorm';
import { UserRole } from '../../common/enums/user-role.enum';
import { AuditService } from '../audit/audit.service';
import { Company } from '../companies/entities/company.entity';
import { UserCompany } from '../companies/entities/user-company.entity';
import { Department } from '../departments/entities/department.entity';
import { JobTitle } from '../job-titles/entities/job-title.entity';
import { Site } from '../sites/entities/site.entity';
import { UserSite } from '../sites/entities/user-site.entity';
import { User } from '../users/entities/user.entity';
import { Worker } from '../workers/entities/worker.entity';
import { ReactivateDto } from './dto/reactivate.dto';
interface Actor {
    id: number;
    role: UserRole;
}
export interface ArchivedItem {
    id: number;
    label: string;
    context: string | null;
    companyId: number | null;
}
export interface ArchiveBundle {
    jobTitles: ArchivedItem[];
    departments: ArchivedItem[];
    sites: ArchivedItem[];
    workers: ArchivedItem[];
    users: ArchivedItem[];
    companies: ArchivedItem[];
}
export declare class ArchiveService {
    private readonly jobTitlesRepository;
    private readonly departmentsRepository;
    private readonly sitesRepository;
    private readonly workersRepository;
    private readonly usersRepository;
    private readonly companiesRepository;
    private readonly userCompaniesRepository;
    private readonly userSitesRepository;
    private readonly auditService;
    constructor(jobTitlesRepository: Repository<JobTitle>, departmentsRepository: Repository<Department>, sitesRepository: Repository<Site>, workersRepository: Repository<Worker>, usersRepository: Repository<User>, companiesRepository: Repository<Company>, userCompaniesRepository: Repository<UserCompany>, userSitesRepository: Repository<UserSite>, auditService: AuditService);
    private managerCompanyIds;
    private managerScopedUserIds;
    listArchived(actor: Actor): Promise<ArchiveBundle>;
    private assertManagerCompany;
    reactivate(actor: Actor, dto: ReactivateDto, ipAddress: string | null): Promise<void>;
}
export {};
