import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
import type { InternalConfig } from "../shared/config.js";
import type { MetricHandler } from "../metrics/handler.js";
import { AzureMonitorSpanProcessor } from "./spanProcessor.js";
import type { Instrumentation } from "@opentelemetry/instrumentation";
import { ApplicationInsightsSampler } from "./sampler.js";
/**
 * Azure Monitor OpenTelemetry Trace Handler
 */
export declare class TraceHandler {
    private _batchSpanProcessor;
    private _azureSpanProcessor;
    private _azureExporter;
    private _instrumentations;
    private _config;
    private _metricHandler;
    private _azureFunctionsHook;
    private _aiSampler;
    /**
     * Initializes a new instance of the TraceHandler class.
     * @param _config - Configuration.
     * @param _metricHandler - MetricHandler.
     */
    constructor(config: InternalConfig, metricHandler: MetricHandler);
    getSampler(): ApplicationInsightsSampler;
    getBatchSpanProcessor(): BatchSpanProcessor;
    getAzureMonitorSpanProcessor(): AzureMonitorSpanProcessor;
    getInstrumentations(): Instrumentation[];
    /**
     * Shutdown handler
     */
    shutdown(): Promise<void>;
    /**
     * Start auto collection of telemetry
     */
    private _initializeInstrumentations;
}
//# sourceMappingURL=handler.d.ts.map