import { CreateTimeTrackingDto } from "./dto/create-time-tracking.dto";
import { UpdateTimeTrackingDto } from "./dto/update-time-tracking.dto";
import { TimeTrackingRepository } from "./repositories/time-tracking.repository";
import { ClockInRecordRepository } from "./repositories/clock-in-record.repository";
import { EmployeeRepository } from "../employees/repositories/employee.repository";
import { EmployeesService } from "../employees/employees.service";
import { EmployeeSalaryHistoryRepository } from "../employees/repositories/employee-salary-history.repository";
import { ProjectRepository } from "../projects/repositories/project.repository";
import { CompanySettingsRepository } from "../company/repositories/company-settings.repository";
export declare class TimeTrackingService {
    private readonly timeTrackingRepository;
    private readonly clockInRecordRepository;
    private readonly employeeRepository;
    private readonly employeesService;
    private readonly projectRepository;
    private readonly companySettingsRepository;
    private readonly employeeSalaryHistoryRepository;
    constructor(timeTrackingRepository: TimeTrackingRepository, clockInRecordRepository: ClockInRecordRepository, employeeRepository: EmployeeRepository, employeesService: EmployeesService, projectRepository: ProjectRepository, companySettingsRepository: CompanySettingsRepository, employeeSalaryHistoryRepository: EmployeeSalaryHistoryRepository);
    create(createTimeTrackingDto: CreateTimeTrackingDto, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findAll(query: any, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findOne(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    update(id: number, updateTimeTrackingDto: UpdateTimeTrackingDto, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    remove(id: number, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    stopTimeTracking(id: number, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    private getApplicableSalary;
    private calculateTimeAndCost;
    clockInOut(token: string): Promise<any>;
    getLastClockInfo(token: string): Promise<any>;
    private formatDuration;
    private getLatestClockInByEmployee;
}
