import { CompaniesService } from './companies.service';
import { CreateCompanyDto } from './dto/create-company.dto';
import { UpdateCompanyDto } from './dto/update-company.dto';
import { CompanyMergeService } from './services/company-merge.service';
export declare class CompaniesController {
    private readonly companiesService;
    private readonly mergeService;
    private readonly logger;
    constructor(companiesService: CompaniesService, mergeService: CompanyMergeService);
    private getCurrentUserId;
    create(files: Express.Multer.File[], dto: CreateCompanyDto): Promise<import("./entities/company.entity").Company>;
    update(id: string, files: Express.Multer.File[], dto: UpdateCompanyDto): Promise<import("./entities/company.entity").Company | null>;
    getAnalyticsByCertBody(): Promise<{
        totalClients: number;
        perBody: any[];
    }>;
    migrateUniqueCompanies(): Promise<void>;
    backfillNormalizedNames(): Promise<{
        updated: number;
        skipped: number;
        duplicates: Array<{
            normalized: string;
            ids: number[];
        }>;
    }>;
    findDuplicates(): Promise<import("./services/company-merge.service").DuplicateGroup[]>;
    mergeCompanies(body: {
        keep_id: number;
        remove_id: number;
    }, req: Request): Promise<import("./services/company-merge.service").MergeResult>;
    mergeHistory(): Promise<any[]>;
    findAll(page?: string, limit?: string, search?: string): Promise<{
        data: import("./entities/company.entity").Company[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    findOne(id: string): Promise<import("./entities/company.entity").Company | null>;
    remove(id: string): Promise<import("typeorm").DeleteResult>;
    getPortalUsers(id: number): Promise<import("./entities/company-user.entity").CompanyUser[]>;
    grantPortalAccess(companyId: number, body: {
        user_id: number;
        email: string;
    }, req: Request): Promise<import("./entities/company-user.entity").CompanyUser>;
    disablePortalAccess(companyId: number, userId: number, req: Request): Promise<import("./entities/company-user.entity").CompanyUser>;
    enablePortalAccess(companyId: number, userId: number, req: Request): Promise<import("./entities/company-user.entity").CompanyUser>;
    disableAllPortalAccess(companyId: number, req: Request): Promise<{
        disabled: number;
    }>;
    revokePortalAccess(companyId: number, userId: number): Promise<{
        message: string;
    }>;
}
