import type { Span } from "@opentelemetry/api";
import type { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
import type { AttributeParams, TraceFormatSpans } from "../core/type.js";
import { type AIGNEObserverOptions } from "../core/type.js";
import type HttpExporter from "../opentelemetry/exporter/http-exporter.js";
export declare class AIGNEObserver {
    private storage?;
    tracer: import("@opentelemetry/api").Tracer;
    processor: SimpleSpanProcessor | undefined;
    exporter: HttpExporter | undefined;
    private sdk;
    private sdkServerStarted;
    static exportFn?: (spans: TraceFormatSpans[]) => Promise<void>;
    static setExportFn(exportFn: (spans: TraceFormatSpans[]) => Promise<void>): void;
    static updateFn?: (id: string, data: AttributeParams) => Promise<void>;
    static setUpdateFn(updateFn: (id: string, data: AttributeParams) => Promise<void>): void;
    constructor(options?: AIGNEObserverOptions);
    serve(): Promise<void>;
    _serve(): Promise<void>;
    flush(span: Span): Promise<void>;
    update(id: string, data: AttributeParams): Promise<void>;
    close(): Promise<void>;
}
