import { EventEmitter } from "events";
import { Context } from "@opentelemetry/api";
import { Span, SpanProcessor } from "@opentelemetry/sdk-trace-base";
import { DtSpanExporter } from "./DtSpanExporter";
export interface DtSpanProcessorConfig {
    clusterId?: number;
    tenantId?: number;
    updateIntervalMs?: number;
    keepAliveIntervalMs?: number;
    exportSpanCntMax?: number;
    openSpanTimeoutMs?: number;
    forceFlushTimeoutMs?: number;
    maxSpans?: number;
    minimumExportTimeMs?: number;
    debugAddStackOnStart?: boolean;
}
export declare class DtSpanProcessor extends EventEmitter implements SpanProcessor {
    constructor(exporter: DtSpanExporter, config?: Readonly<DtSpanProcessorConfig>);
    onStart(span: Span, parentContext: Context): void;
    onEnd(span: Span): void;
    forceFlush(): Promise<void>;
    shutdown(): Promise<void>;
    private _exportAfterWait;
    private _addSpan;
    private _startUnrefedTimer;
    private readonly _export;
    private _onExportDone;
    private _abort;
    private _stateToString;
    private _isShutdown;
    private _spans;
    private _exportingSpans;
    private _exportIterator?;
    private _isExporting;
    private _forceFlushTimer;
    private _forceFlushPromise;
    private _maxSpansLogged;
    private readonly _logger;
    private readonly _exporter;
    private readonly _exportSpanCntMax;
    private readonly _updateIntervalMs;
    private readonly _keepAliveIntervalMs;
    private readonly _openSpanTimeoutMs;
    private readonly _forceFlushTimeoutMs;
    private readonly _maxSpans;
    private readonly _minimumExportTimeMs;
    private readonly _transmitOptions;
    private readonly _ids;
    private readonly _addStackOnStart;
}
//# sourceMappingURL=DtSpanProcessor.d.ts.map