import { Repository } from 'typeorm';
import { UserRole } from '../../common/enums/user-role.enum';
import { Site } from '../sites/entities/site.entity';
import { UserSite } from '../sites/entities/user-site.entity';
import { CreateCompanyDto } from './dto/create-company.dto';
import { UpdateCompanyDto } from './dto/update-company.dto';
import { Company } from './entities/company.entity';
import { UserCompany } from './entities/user-company.entity';
export declare class CompaniesService {
    private readonly companiesRepository;
    private readonly userCompaniesRepository;
    private readonly userSitesRepository;
    private readonly sitesRepository;
    constructor(companiesRepository: Repository<Company>, userCompaniesRepository: Repository<UserCompany>, userSitesRepository: Repository<UserSite>, sitesRepository: Repository<Site>);
    findAllForUser(userId: number, role: UserRole): Promise<Company[]>;
    findOne(id: number): Promise<Company>;
    findOneForUser(id: number, userId: number, role: UserRole): Promise<Company>;
    create(dto: CreateCompanyDto, createdBy: number, creatorRole: UserRole): Promise<Company>;
    update(id: number, dto: UpdateCompanyDto, userId: number, role: UserRole): Promise<Company>;
    setLogoUrl(id: number, logoUrl: string, userId: number, role: UserRole): Promise<Company>;
    getSupervisors(companyId: number): Promise<UserCompany[]>;
}
