import { ExportResultCode } from "@opentelemetry/core";
import type { ReadableSpan, SpanExporter } from "@opentelemetry/sdk-trace-base";
import type { TraceFormatSpans } from "../../core/type.js";
export interface HttpExporterInterface extends SpanExporter {
    export(spans: ReadableSpan[], resultCallback: (result: {
        code: ExportResultCode;
    }) => void): Promise<void>;
    shutdown(): Promise<void>;
    upsertInitialSpan(span: ReadableSpan): Promise<void>;
}
declare class HttpExporter implements HttpExporterInterface {
    private dbPath?;
    _db?: any;
    private upsert;
    getDb(): Promise<import("drizzle-orm/libsql/driver-core.js").LibSQLDatabase<Record<string, never>> | import("drizzle-orm/sqlite-proxy/driver.js").SqliteRemoteDatabase<Record<string, never>> | undefined>;
    constructor({ dbPath, exportFn, }: {
        dbPath?: string;
        exportFn?: (spans: TraceFormatSpans[]) => Promise<void>;
    });
    _upsertWithSQLite(validatedData: TraceFormatSpans[]): Promise<void>;
    export(spans: ReadableSpan[], resultCallback: (result: {
        code: ExportResultCode;
    }) => void): Promise<void>;
    shutdown(): Promise<void>;
    upsertInitialSpan(span: ReadableSpan): Promise<void>;
}
export default HttpExporter;
