import { MeterProvider } from "@opentelemetry/sdk-metrics";
import type { SdkLogRecord } from "@opentelemetry/sdk-logs";
import type { InternalConfig } from "../shared/config.js";
import type { ReadableSpan, Span } from "@opentelemetry/sdk-trace-base";
/**
 * Azure Monitor Standard Metrics
 * @internal
 */
export declare class StandardMetrics {
    private _config;
    private _collectionInterval;
    private _meterProvider;
    private _azureExporter;
    private _metricReader;
    private _meter;
    private _incomingRequestDurationHistogram;
    private _outgoingRequestDurationHistogram;
    private _exceptionsCounter;
    private _tracesCounter;
    /**
     * Initializes a new instance of the StandardMetrics class.
     * @param config - Distro configuration.
     * @param options - Standard Metrics options.
     */
    constructor(config: InternalConfig, options?: {
        collectionInterval: number;
    });
    /**
     * Shutdown Meter Provider it will return no-op Meters after being called.
     */
    shutdown(): void;
    /**
     * Force flush Meter Provider.
     */
    flush(): Promise<void>;
    /**
     *Get OpenTelemetry MeterProvider
     */
    getMeterProvider(): MeterProvider;
    /**
     * Add extra attributes to Span so Ingestion doesn't aggregate the data again
     * @internal
     */
    markSpanAsProcessed(span: Span): void;
    /**
     * Record Span metrics
     * @internal
     */
    recordSpan(span: ReadableSpan): void;
    /**
     * Record LogRecord metrics, add attribute so data is not aggregated again in ingestion
     * @internal
     */
    recordLog(logRecord: SdkLogRecord): void;
}
//# sourceMappingURL=standardMetrics.d.ts.map