/**
 * Grafana Loki SIEM Connector
 *
 * Primary connector for Loki (free/self-hosted SIEM).
 * Implements the Loki Push API for log ingestion with batching and retry.
 *
 * @see https://grafana.com/docs/loki/latest/api/#push-log-entries-to-loki
 * @packageDocumentation
 */
import type { AuditEvent, ISIEMConnector, SIEMConfig, SIEMConnectorStats } from './types.js';
/**
 * Grafana Loki connector for SIEM integration.
 *
 * Features:
 * - Push API support (/loki/api/v1/push)
 * - Structured JSON log lines
 * - Configurable labels (app, environment, severity)
 * - Automatic batching with flush interval
 * - Exponential backoff retry
 * - Gzip compression support
 */
export declare class LokiConnector implements ISIEMConnector {
    readonly provider: "loki";
    private config;
    private queue;
    private flushTimer;
    private isShuttingDown;
    private stats;
    private latencies;
    constructor(config: SIEMConfig);
    /**
     * Check if Loki is reachable
     */
    healthCheck(): Promise<boolean>;
    /**
     * Send a single event to Loki
     */
    sendEvent(event: AuditEvent): Promise<void>;
    /**
     * Send a batch of events to Loki
     */
    sendBatch(events: AuditEvent[]): Promise<void>;
    /**
     * Flush all queued events
     */
    flush(): Promise<void>;
    /**
     * Graceful shutdown
     */
    shutdown(): Promise<void>;
    /**
     * Get connector statistics
     */
    getStats(): SIEMConnectorStats;
    /**
     * Start the periodic flush timer
     */
    private startFlushTimer;
    /**
     * Add event to queue with overflow protection
     */
    private addToQueue;
    /**
     * Push events to Loki's API
     */
    private pushToLoki;
    /**
     * Build Loki push request from events
     */
    private buildLokiRequest;
    /**
     * Get a unique key for grouping events by labels
     */
    private getLabelKey;
    /**
     * Parse label key back to label object
     */
    private parseLabelKey;
    /**
     * Convert an audit event to a Loki log entry
     */
    private eventToLokiEntry;
    /**
     * Build HTTP headers for Loki requests
     */
    private buildHeaders;
    /**
     * Update latency statistics
     */
    private updateLatencyStats;
    /**
     * Sleep for a specified duration
     */
    private sleep;
}
/**
 * Create a new Loki connector instance
 */
export declare function createLokiConnector(config: SIEMConfig): LokiConnector;
//# sourceMappingURL=loki.d.ts.map