/**
 * LogBatcher - Implements the exact batching logic as specified in requirements
 * Batches logs and sends them to the centralized logging endpoint
 */
import { LogShipper, LogEntry } from './log-shipper.js';
export declare class LogBatcher {
    private logs;
    private maxBatchSize;
    private flushInterval;
    private sessionId;
    private logShipper;
    private flushTimer;
    constructor(logShipper: LogShipper, maxBatchSize?: number, flushInterval?: number);
    /**
     * Add a structured log entry to the batch
     */
    addStructuredLog(logEntry: LogEntry): void;
    /**
     * Flush all batched logs
     */
    flush(): Promise<void>;
    /**
     * Get the session ID for this batcher instance
     */
    getSessionId(): string;
    /**
     * Generate a unique session ID
     */
    private generateSessionId;
    /**
     * Get current batch status
     */
    getBatchStatus(): {
        queueSize: number;
        maxBatchSize: number;
        flushInterval: number;
        sessionId: string;
    };
    /**
     * Shutdown the batcher and flush remaining logs
     */
    shutdown(): Promise<void>;
}
//# sourceMappingURL=log-batcher.d.ts.map