/**
 * Infrastructure: LokiLogRepository
 * Concrete implementation of ILogRepository for Grafana Loki
 */
import { ILogRepository, RepositoryHealth } from '../../domain/repositories/ILogRepository';
import { LogEntry } from '../../domain/entities/LogEntry';
import { ICircuitBreakerService } from '../../domain/services/ICircuitBreakerService';
import { IHttpClient } from '../http/IHttpClient';
import { ILokiFormatter } from '../formatters/ILokiFormatter';
export interface LokiRepositoryConfig {
    readonly url: string;
    readonly tenantId: string;
    readonly authToken?: string;
    readonly timeout?: number;
    readonly maxRetries?: number;
    readonly retryDelay?: number;
    readonly compression?: boolean;
    readonly compressionLevel?: number;
}
export declare class LokiLogRepository implements ILogRepository {
    private readonly config;
    private readonly httpClient;
    private readonly formatter;
    private readonly circuitBreaker;
    private buffer;
    private errorCount;
    private lastSuccessfulFlush?;
    constructor(config: LokiRepositoryConfig, httpClient: IHttpClient, formatter: ILokiFormatter, circuitBreaker: ICircuitBreakerService);
    save(entry: LogEntry): Promise<void>;
    saveBatch(entries: LogEntry[]): Promise<void>;
    flush(): Promise<void>;
    getHealth(): Promise<RepositoryHealth>;
    private buildHeaders;
}
//# sourceMappingURL=LokiLogRepository.d.ts.map