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