/**
 * Elasticsearch SIEM Connector
 *
 * Connector for Elasticsearch/OpenSearch integration.
 * Supports bulk API, configurable index patterns, and ECS-compatible format.
 *
 * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
 * @packageDocumentation
 */
import type { AuditEvent, ISIEMConnector, SIEMConfig, SIEMConnectorStats } from './types.js';
/**
 * Elasticsearch connector for SIEM integration.
 *
 * Features:
 * - Bulk API support for efficient indexing
 * - ECS (Elastic Common Schema) compatible document format
 * - Configurable index patterns with date rotation
 * - Automatic batching with flush interval
 * - Exponential backoff retry
 * - Gzip compression support
 */
export declare class ElasticConnector implements ISIEMConnector {
    readonly provider: "elastic";
    private config;
    private queue;
    private flushTimer;
    private isShuttingDown;
    private indexPattern;
    private stats;
    private latencies;
    constructor(config: SIEMConfig);
    /**
     * Check if Elasticsearch is reachable
     */
    healthCheck(): Promise<boolean>;
    /**
     * Send a single event to Elasticsearch
     */
    sendEvent(event: AuditEvent): Promise<void>;
    /**
     * Send a batch of events to Elasticsearch
     */
    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 Elasticsearch bulk API
     * Returns the number of failed documents
     */
    private pushToElastic;
    /**
     * Get the index name for a timestamp (with date rotation)
     */
    private getIndexName;
    /**
     * Convert an audit event to Elasticsearch ECS-compatible format
     */
    private eventToElasticDocument;
    /**
     * Build HTTP headers for Elasticsearch requests
     */
    private buildHeaders;
    /**
     * Update latency statistics
     */
    private updateLatencyStats;
    /**
     * Sleep for a specified duration
     */
    private sleep;
}
/**
 * Create a new Elasticsearch connector instance
 */
export declare function createElasticConnector(config: SIEMConfig): ElasticConnector;
//# sourceMappingURL=elastic.d.ts.map