import { OnModuleInit } from '@nestjs/common';
import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { AdpAuthService } from './sdk/adp-auth.service';
import { AdpLinkerService } from './sync/adp-linker.service';
import { AdpPtoSyncService } from './sync/adp-pto-sync.service';
export declare const ADP_TASK_CODES: {
    readonly LINKER: "ADP_LINKER";
    readonly PTO_SYNC: "ADP_PTO_SYNC";
};
export declare class AdpSchedulerService implements OnModuleInit {
    private readonly prisma;
    private readonly auth;
    private readonly linker;
    private readonly ptoSync;
    private readonly logger;
    private readonly runningTasks;
    constructor(prisma: PrismaService, auth: AdpAuthService, linker: AdpLinkerService, ptoSync: AdpPtoSyncService);
    onModuleInit(): Promise<void>;
    handleLinkerCron(): Promise<void>;
    handlePtoSyncCron(): Promise<void>;
    triggerLinkerAsync(triggeredBy?: string, dryRun?: boolean): {
        accepted: boolean;
        reason?: string;
    };
    triggerPtoSyncAsync(triggeredBy?: string, windowStartDays?: number, windowEndDays?: number): {
        accepted: boolean;
        reason?: string;
    };
    private triggerAsync;
    private executeTask;
    private taskDisplayName;
    private toJsonResult;
    getStatus(): Promise<{
        tasks: {
            code: string;
            name: string;
            status: import("@prisma/client").$Enums.AutomationTaskStatus;
            lastRunAt: Date | null;
            lastStatus: import("@prisma/client").$Enums.AutomationExecutionStatus | null;
            totalRuns: number;
            successRuns: number;
            failedRuns: number;
            lastExecution: {
                id: string;
                status: import("@prisma/client").$Enums.AutomationExecutionStatus;
                startedAt: Date;
                completedAt: Date | null;
                duration: number | null;
                result: import("@prisma/client/runtime/library").JsonValue;
                logs: string | null;
                error: string | null;
            } | null;
        }[];
        isEnabled: boolean;
        configValidation: {
            ok: boolean;
            missing: string[];
        };
    }>;
}
