import { DingtalkAuthService } from './dingtalk-auth.service';
export declare class DingtalkAttendanceService {
    private authService;
    private readonly logger;
    private static readonly LEAVE_QUOTA_BATCH_SIZE;
    private static readonly LEAVE_QUOTA_PAGE_SIZE;
    private static readonly API_THROTTLE_MS;
    constructor(authService: DingtalkAuthService);
    private throttle;
    approveFinish(params: {
        userId: string;
        bizType: number;
        fromDate: string;
        toDate: string;
        durationUnit: string;
        calculateModel: number;
        tagName: string;
        approveId: string;
        jumpUrl: string;
        subType?: string;
        overtimeDuration?: number;
        overtimeToMore?: number;
    }): Promise<any>;
    approveCancel(userId: string, approveId: string): Promise<any>;
    searchLeaveQuota(leaveCode: string, userIds: string | string[]): Promise<any[]>;
    private searchLeaveQuotaBatch;
    private searchLeaveQuotaOneByOne;
    private normalizeUserIds;
    listLeaveTypes(): Promise<Array<{
        leave_code: string;
        leave_name: string;
        [key: string]: any;
    }>>;
    updateLeaveQuota(leaveQuotas: any[]): Promise<any>;
    getApproveRecords(userId: string, workDate: string): Promise<any>;
    getLeaveRecords(leaveCode: string, userIds: string | string[]): Promise<any[]>;
}
