import { PrismaService } from "../../../../core/database/prisma/prisma.service";
import { DingtalkYidaService } from '../sdk/dingtalk-yida.service';
import { DingtalkAttendanceService } from '../sdk/dingtalk-attendance.service';
import { SyncExecutionResult } from './business-trip-sync.service';
export declare class AnnualLeaveSyncService {
    private prisma;
    private yidaService;
    private attendanceService;
    private readonly logger;
    constructor(prisma: PrismaService, yidaService: DingtalkYidaService, attendanceService: DingtalkAttendanceService);
    sync(userId?: string, year?: number): Promise<SyncExecutionResult>;
    refreshPlan(userId?: string, year?: number): Promise<SyncExecutionResult>;
    private getLeaveCodeForYear;
    private splitWindowsBySuspensions;
    private getEmploymentWindowsInYear;
    calculateLeaveDates(joinDateStr: string, workStartDateStr: string, bias: number, targetYear: number): string[];
    calculateLeaveDays(workYears: number, companyYears: number): number;
    distributeLeaveDays(leaveDays: number, startDate: Date, endDate: Date): Date[];
    private daysBetween;
    private ensureLastYearPlan;
    private calculateBiasFromLastYear;
    private buildAnnualLeavePlanData;
    private getReleaseDatesFromPlan;
    private parseDateOnly;
    formatDate(date: Date): string;
}
