import type { S3 } from "@aws-sdk/client-s3";
export declare class PulseCronAWS {
    private semaphore;
    private bucketName;
    private client;
    private prefix;
    private maxConcurrentDownloads;
    private maxKeys;
    private startTime;
    private endTime;
    private earlyTermination;
    private region;
    private samplingByCount;
    private samplingByPercentage;
    private samplingCount;
    private samplingPercentage;
    private validExtensions;
    private currentBatchFiles;
    private applicationId;
    private static readonly GLOBAL_PROCESSING_LOCK;
    constructor({ bucketName, client, prefix, maxConcurrentDownloads, maxKeys, startTime, endTime, earlyTermination, region, samplingByCount, samplingByPercentage, samplingCount, samplingPercentage, validExtensions, applicationId }: {
        bucketName: string;
        client: S3;
        prefix: string;
        maxConcurrentDownloads: number;
        maxKeys: number;
        startTime: Date | string;
        endTime: Date | string;
        earlyTermination: boolean;
        region: string;
        samplingByCount: boolean;
        samplingByPercentage: boolean;
        samplingCount: number;
        samplingPercentage: number;
        validExtensions?: string[];
        applicationId: string;
    });
    private isTranscriptFile;
    private fileExists;
    private getTranscriptContent;
    private getRandomizedSample;
    private getFileNameFromPath;
    getLogs(): Promise<{
        logs: any[];
        totalValidCount: number;
        totalScanned: number;
        retrievedCount: number;
        type: string;
        value: number;
        earlyTerminated: boolean;
    }>;
    mergeSortedArrays(arr1: any[], arr2: any[]): any[];
    getLogContentsParallel(logObjects: any[]): Promise<Record<string, any>[]>;
    retrieveLogs(): Promise<any>;
    private executeRetrieveLogs;
    getLogContentsStreaming(logObjects: any[], maxContentSize?: number): Promise<({
        key: any;
        lastModified: any;
        size: any;
        content: string | undefined;
        fileType: any;
        fileExtension: any;
        transcript: string | null;
        truncated: boolean;
        truncatedSize: number;
        error?: undefined;
    } | {
        key: any;
        lastModified: any;
        size: any;
        content: string | undefined;
        fileType: any;
        fileExtension: any;
        transcript: string | null;
        truncated: boolean;
        truncatedSize?: undefined;
        error?: undefined;
    } | {
        key: any;
        lastModified: any;
        size: any;
        content: undefined;
        fileType: any;
        fileExtension: any;
        transcript: null;
        error: any;
        truncated?: undefined;
        truncatedSize?: undefined;
    })[]>;
    getFileContent({ fileName, }: {
        fileName: string;
    }): Promise<Record<string, any>>;
    getFileMetadata({ fileName, }: {
        fileName: string;
    }): Promise<Record<string, any>>;
}
//# sourceMappingURL=pulseCronAWS.d.ts.map