import Long = require("long");
import { ExportResult } from "@opentelemetry/core";
import { SpanExporter, ReadableSpan } from "@opentelemetry/sdk-trace-base";
import { ExportType } from "../Types";
export interface DtSpanExporterConfig {
    baseUrl: string;
    authToken: string;
    tenantUUID: string;
    agentID: Long;
    fastConnectionTimeoutMs?: number;
    fastDataTimeoutMs?: number;
    normalConnectionTimeoutMs?: number;
    normalDataTimeoutMs?: number;
}
export type ResultCallback = (result: ExportResult) => void;
export declare class DtSpanExporter implements SpanExporter {
    constructor(cfg?: Readonly<DtSpanExporterConfig>);
    hasPendingRequest(): boolean;
    /**
     * Exports spans.
     */
    export(spans: ReadableSpan[], resultCallback: ResultCallback, type?: ExportType, retries?: number, spanExportMsg?: Buffer): void;
    /**
     * Shutdown exporter
     */
    shutdown(): Promise<void>;
    /**
     * Abort an ongoing export by destroying the underlying socket.
     */
    abort(): void;
    private _executeRequest;
    private _getDelayMs;
    private _isSecurityEnhancedDomain;
    private _stopTimer;
    private _shouldRetrySendOperation;
    private _request?;
    private _timer?;
    private _sendStartTime?;
    private _connecting;
    private _isShutdown;
    private readonly _reqOpts;
    private readonly _httpRequest;
    private readonly _senderId;
    private readonly _tenantUUID;
    private _resource?;
    private _hasPendingRequest;
    private readonly _fastTimeoutsMs;
    private readonly _normalTimeoutsMs;
    private readonly _logger;
    private readonly _suppressingContext;
}
//# sourceMappingURL=DtSpanExporter.d.ts.map