import type winston from 'winston';
import Transport from 'winston-transport';
export interface ApiTransportOptions {
    apiUrl: string;
    batchSize: number;
    flushInterval: number;
    maxRetries: number;
    level?: string;
    silent?: boolean;
    format?: winston.Logform.Format;
    emailConfig: {
        url: string;
        fromEmail: string;
        toEmail: string;
    };
    logManagement?: {
        enabled: boolean;
        retentionDays: number;
        dumpIntervalHours?: number;
        purgeIntervalHours?: number;
    };
}
export declare class ApiTransport extends Transport {
    private logBuffer;
    private flushTimer;
    private isFlushing;
    private retryCount;
    private failedLogs;
    private logFilePath;
    private options;
    private logManagementService;
    constructor(options: ApiTransportOptions);
    private ensureLogDirectory;
    private initializeLogManagement;
    private sendEmail;
    private startFlushTimer;
    log(info: any, callback: () => void): void;
    private flushLogs;
    private sendLogsToApi;
    private handleApiFailure;
    private saveLogsToFile;
    private sendFailureEmail;
    forceFlush(): Promise<void>;
    getBufferStatus(): {
        length: number;
        batchSize: number;
        isFlushing: boolean;
    };
    private performAutomaticLogManagement;
    close(): void;
}
//# sourceMappingURL=apiTransport.d.ts.map