import { Instrumentation } from '@opentelemetry/instrumentation';
import { OpenTelemetryConfig } from '../../configuration/opentelemetry-config';
import { IExporter } from '../exporter/exporter.interface';
import { IPropagator } from '../propagator/propagator.interface';
import * as i0 from "@angular/core";
/**
 * InstrumentationService.
 * Service for component to add instrumentation.
 */
export declare class InstrumentationService {
    private config;
    private exporterService;
    private propagatorService;
    private instrumentation;
    /**
     * tracerProvider
     */
    private tracerProvider;
    /**
     * contextManager
     */
    private contextManager;
    /**
     * Constructor
     *
     * @param config
     * @param exporterService
     * @param propagatorService
     */
    constructor(config: OpenTelemetryConfig, exporterService: IExporter, propagatorService: IPropagator, instrumentation: Instrumentation[]);
    /**
     * Init instrumentation on init
     */
    initInstrumentation(): void;
    /**
     * Generate Resource Attributes
     * @param commonConfig common configuration
     * @returns Resource
     */
    private loadResourceAttributes;
    /**
     * Verify to insert or not a Span Exporter
     * @param console config to insert console span
     * @param production production mode
     * @param exporter exporter
     * @returns Array of SpanProcessor
     */
    private insertOrNotSpanExporter;
    /**
     * Insert in tracer the console span if config is true
     *
     * @param console config to insert console span
     * @returns SpanProcessor
     */
    private insertConsoleSpanExporter;
    /**
     * Insert BatchSpanProcessor in production mode
     * SimpleSpanProcessor otherwise
     *
     * @param boolean production
     * @param IExporter exporter
     * @returns SpanProcessor
     */
    private insertSpanProcessorProductionMode;
    /**
     * convert String to Number (or undefined)
     *
     * @param value
     * @returns number or undefined
     */
    private convertStringToNumber;
    /**
     * define the Probability Sampler
     * By Default, it's always (or 1)
     *
     * @param sampleConfig the sample configuration
     * @returns Sampler
     */
    private defineProbabilitySampler;
    static ɵfac: i0.ɵɵFactoryDeclaration<InstrumentationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<InstrumentationService>;
}
