import { CompanyRepository } from "./repositories/company.repository";
import { Company } from "./entities/company.entity";
import { CompanySettingsRepository } from "./repositories/company-settings.repository";
import { CompanyProfileRepository } from "./repositories/company-profile.repository";
import { CompanySubscriptionRepository } from "./repositories/company-subscription.repository";
import { CompanySubscriptionHistoryRepository } from "./repositories/company-subscription-history.repository";
import { CompanySubscriptionHistoryService } from "./services/company-subscription-history.service";
import { CreateCompanySettingDto } from "./dto/create-company-settings.dto";
import { CreateCompanyDto } from "./dto/create-company.dto";
import { RegisterCompanyDto } from "./dto/register-company.dto";
import { UpdateCompanyDto } from "./dto/update-company.dto";
import { CompanyFiltersDto } from "./dto/company-filters.dto";
import { AuthRepository } from "../auth/repositories/auth.repository";
import { AuthService } from "../auth/auth.service";
import { RoleRepository } from "../role/repositories/role.repository";
import { RolePermissionRepository } from "../role-permissions/repositories/role-permission.repository";
import { PermissionsService } from "../permissions/permissions.service";
import { DataSource } from "typeorm";
import { AddressRepository } from "../address/repositories/address.repository";
import { ActivityTypeRepository } from "../activity-types/repositories/activity-type.repository";
import { CompanySetting } from "./entities/company-settings.entity";
import { DepartmentRepository } from "../departments/repositories/department.repository";
import { LeaveTypeRepository } from "../leave-types/repositories/leave-type.repository";
import { SalarySettingRepository } from "../salary-settings/repositories/salary-setting.repository";
export declare class CompanyService {
    private readonly companyRepository;
    private readonly companyProfileRepository;
    private readonly companySubscriptionRepository;
    private readonly companySubscriptionHistoryRepository;
    private readonly companySettingRepository;
    private readonly authRepository;
    private readonly authService;
    private readonly roleRepository;
    private readonly rolePermissionRepository;
    private readonly permissionsService;
    private readonly addressRepository;
    private readonly dataSource;
    private readonly activityTypeRepository;
    private readonly departmentRepository;
    private readonly leaveTypeRepository;
    private readonly salarySettingRepository;
    private readonly subscriptionHistoryService;
    constructor(companyRepository: CompanyRepository, companyProfileRepository: CompanyProfileRepository, companySubscriptionRepository: CompanySubscriptionRepository, companySubscriptionHistoryRepository: CompanySubscriptionHistoryRepository, companySettingRepository: CompanySettingsRepository, authRepository: AuthRepository, authService: AuthService, roleRepository: RoleRepository, rolePermissionRepository: RolePermissionRepository, permissionsService: PermissionsService, addressRepository: AddressRepository, dataSource: DataSource, activityTypeRepository: ActivityTypeRepository, departmentRepository: DepartmentRepository, leaveTypeRepository: LeaveTypeRepository, salarySettingRepository: SalarySettingRepository, subscriptionHistoryService: CompanySubscriptionHistoryService);
    checkCompanyExist(name: string): Promise<boolean>;
    private calculateFinancialYearSubscription;
    create(company?: Company): Promise<Company>;
    createCompany(createCompanyDto: CreateCompanyDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    registerCompany(registerCompanyDto: RegisterCompanyDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    } | {
        success: boolean;
        code: number;
        message: string;
        data: {
            message: string;
            company_id: number;
            user_id: number;
        };
    }>;
    private assignAllPermissionsToSuperAdmin;
    private sendCompanyAdminPasswordSetupEmail;
    private sendEmailVerificationEmail;
    findByName(name: string): Promise<Company | null>;
    updateCompany(id: number, updateCompanyDto: UpdateCompanyDto, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    private mapCompanyRawResult;
    findAll(filters: CompanyFiltersDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findOne(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    activeInactive(id: number, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    saveCompanySettings(dto: CreateCompanySettingDto, refreshToken: string, logoFile?: Express.Multer.File): Promise<{
        success: boolean;
        code: number;
        message: string;
    } | CompanySetting>;
    getCompanySettings(token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    deleteCompany(id: number, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
}
