import { AdpAuthService } from './adp-auth.service';
export interface AdpWorker {
    associateOID: string;
    workerID?: {
        idValue?: string;
    };
    workerStatus?: {
        statusCode?: {
            codeValue?: string;
        };
    };
    person?: {
        legalName?: {
            givenName?: string;
            familyName1?: string;
        };
    };
    businessCommunication?: {
        emails?: Array<{
            itemID?: string;
            emailUri?: string;
        }>;
    };
}
export interface AdpTimeOffEntry {
    payCode?: {
        codeValue?: string;
    };
    entryStatusCode?: {
        codeValue?: string;
    };
    dateTimePeriod?: {
        startDateTime?: string;
        endDateTime?: string;
    };
    timeOffPolicyCode?: {
        codeValue?: string;
    };
}
export interface AdpTimeOffRequest {
    timeOffRequestID: string;
    associateOID: string;
    requestStatusCode?: {
        codeValue?: string;
    };
    timeOffEntries?: AdpTimeOffEntry[];
}
export type AdpTimeOffStatus = 'approved' | 'pending' | 'cancelled';
export declare class AdpApiService {
    private readonly auth;
    private readonly logger;
    constructor(auth: AdpAuthService);
    fetchAllActiveWorkers(): Promise<AdpWorker[]>;
    fetchTimeOffRequests(aoid: string, status: AdpTimeOffStatus, startDate: Date, endDate: Date): Promise<AdpTimeOffRequest[]>;
    static extractWorkerEmail(worker: AdpWorker): string | null;
    private formatDate;
}
