import { type ClientSecretCredential } from "@azure/identity";
export declare class PulseCronAzure {
    private semaphore;
    private accountName;
    private containerName;
    private client;
    private containerClient;
    private prefix;
    private maxConcurrentDownloads;
    private maxKeys;
    private startTime;
    private endTime;
    private earlyTermination;
    private samplingByCount;
    private samplingByPercentage;
    private samplingCount;
    private samplingPercentage;
    private validExtensions;
    private applicationId;
    private currentBatchFiles;
    private static readonly GLOBAL_PROCESSING_LOCK;
    constructor({ accountName, containerName, connectionString, credential, prefix, maxConcurrentDownloads, maxKeys, startTime, endTime, earlyTermination, samplingByCount, samplingByPercentage, samplingCount, samplingPercentage, validExtensions, applicationId }: {
        accountName: string;
        containerName: string;
        connectionString?: string;
        credential?: ClientSecretCredential;
        prefix: string;
        maxConcurrentDownloads: number;
        maxKeys: number;
        startTime: Date | string;
        endTime: Date | string;
        earlyTermination: boolean;
        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;
    }>;
    getLogContentsParallel(logObjects: any[]): Promise<Record<string, any>[]>;
    private streamToString;
    private streamToByteArray;
    retrieveLogs(): Promise<any>;
    private executeRetrieveLogs;
    getLogContentsStreaming(logObjects: any[], maxContentSize?: number): Promise<({
        key: any;
        lastModified: any;
        size: any;
        content: string;
        fileType: any;
        fileExtension: any;
        transcript: string | null;
        truncated: boolean;
        truncatedSize: number;
        error?: undefined;
    } | {
        key: any;
        lastModified: any;
        size: any;
        content: string;
        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=pulseCronAzure.d.ts.map