import { TelescopeEntry } from '../interfaces/telescope-entry.interface';
export interface BufferConfig {
    enabled: boolean;
    maxBufferSize: number;
    flushInterval: number;
    maxBatchSize: number;
    priorityFlushThreshold: number;
    retryAttempts: number;
    retryDelay: number;
}
export interface BufferStats {
    currentBufferSize: number;
    totalEntries: number;
    totalFlushes: number;
    totalFailures: number;
    lastFlushTime: number;
    averageFlushSize: number;
    bufferUtilization: number;
}
export declare class BufferedEntryManagerService {
    private readonly flushHandler;
    private readonly logger;
    private readonly buffer;
    private readonly config;
    private flushTimer;
    private isFlushInProgress;
    private readonly stats;
    constructor(config: Partial<BufferConfig>, flushHandler: (entries: TelescopeEntry[]) => Promise<void>);
    addEntry(entry: TelescopeEntry, priority?: number): Promise<void>;
    addBatch(entries: TelescopeEntry[], priority?: number): Promise<void>;
    flush(): Promise<void>;
    getStats(): BufferStats;
    getBufferSize(): number;
    isHealthy(): boolean;
    clearBuffer(): void;
    onDestroy(): void;
    shutdown(): Promise<void>;
    private shouldFlushImmediately;
    private startFlushTimer;
    private flushBuffer;
    private processBatch;
    private handleFailedBatch;
    private updateBufferUtilization;
    private updateAverageFlushSize;
    private sleep;
}
