import { AuditEvent, LogStreamsAdapter } from "@authhero/adapter-interfaces";
import { EventDestination } from "../outbox-relay";
interface LogStreamData {
    date: string;
    type: string;
    description?: string;
    tenant_name: string;
    ip: string;
    user_agent?: string;
    user_id?: string;
    user_name?: string;
    client_id?: string;
    connection?: string;
    strategy?: string;
    strategy_type?: string;
    audience?: string;
    scope?: string;
    hostname?: string;
    auth0_client?: unknown;
    location_info?: unknown;
    details: {
        request: {
            method: string;
            path: string;
            qs?: Record<string, string>;
            body?: unknown;
        };
        response?: {
            statusCode: number;
            body?: unknown;
        };
    };
}
interface LogStreamPayload {
    log_id: string;
    description?: string;
    data: LogStreamData;
}
interface StreamDelivery {
    tenantId: string;
    logType: string;
    payload: LogStreamPayload;
}
/**
 * Delivers audit events to tenant-configured HTTP log streams. Mirrors
 * Auth0's log_stream wire shape so Loki / Logstash / Datadog sinks
 * configured for an Auth0 tenant can be pointed at authhero unchanged.
 *
 * One delivery per (event, stream) — does not batch events into a single
 * POST because the outbox relay invokes `deliver` per-event. JSONARRAY is
 * therefore a single-element array; consumers expecting batched arrays
 * should still parse correctly.
 */
export declare class LogStreamDestination implements EventDestination {
    name: string;
    private logStreams;
    private timeoutMs;
    constructor(logStreams: LogStreamsAdapter, options?: {
        timeoutMs?: number;
    });
    accepts(event: AuditEvent): boolean;
    transform(event: AuditEvent): StreamDelivery;
    deliver(events: StreamDelivery[]): Promise<void>;
    private deliverToStream;
}
export {};
