import { MeterProvider } from "@opentelemetry/sdk-metrics";
import type { SdkLogRecord } from "@opentelemetry/sdk-logs";
import type { InternalConfig } from "../../shared/config.js";
import type { ReadableSpan } from "@opentelemetry/sdk-trace-base";
import type { DocumentIngress } from "../../generated/index.js";
import type { CollectionConfigurationError } from "../../generated/index.js";
/**
 * Azure Monitor Live Metrics
 * @internal
 */
export declare class LiveMetrics {
    private config;
    private meterProvider;
    private metricReader;
    private meter;
    private requestDurationGauge;
    private dependencyDurationGauge;
    private requestRateGauge;
    private requestFailedRateGauge;
    private dependencyRateGauge;
    private dependencyFailedRateGauge;
    private processPhysicalBytesGauge;
    private percentProcessorTimeNormalizedGauge;
    private exceptionsRateGauge;
    private documents;
    private pingInterval;
    private postInterval;
    private quickpulseExporter;
    private pingSender;
    private isCollectingData;
    private isDeactivating;
    private deactivatingPromise;
    private lastSuccessTime;
    private handle;
    private baseMonitoringDataPoint;
    private totalRequestCount;
    private totalFailedRequestCount;
    private totalDependencyCount;
    private totalFailedDependencyCount;
    private totalExceptionCount;
    private requestDuration;
    private dependencyDuration;
    private lastRequestDuration;
    private lastRequestRate;
    private lastFailedRequestRate;
    private lastDependencyDuration;
    private lastDependencyRate;
    private lastFailedDependencyRate;
    private lastExceptionRate;
    private lastCpuUsage;
    private lastHrTime;
    private statsbeatOptionsUpdated;
    private etag;
    private errorTracker;
    private seenMetricIds;
    private validDerivedMetrics;
    private derivedMetricProjection;
    private validator;
    private filter;
    private validDocumentFilterConjuctionGroupInfos;
    /**
     * Initializes a new instance of the StandardMetrics class.
     * @param config - Distro configuration.
     * @param options - Standard Metrics options.
     */
    constructor(config: InternalConfig);
    shutdown(): Promise<void>;
    private goQuickpulse;
    private quickPulseDone;
    activateMetrics(options?: {
        collectionInterval: number;
    }): void;
    /**
     * Deactivate metric collection
     */
    deactivateMetrics(): Promise<void>;
    /**
     * Force flush Meter Provider.
     */
    flush(): Promise<void>;
    /**
     *Get OpenTelemetry MeterProvider
     */
    getMeterProvider(): MeterProvider | undefined;
    getDocuments(): DocumentIngress[];
    getErrors(): CollectionConfigurationError[];
    getDerivedMetricValues(): Map<string, number>;
    private addDocument;
    /**
     * 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;
    private getRequestDuration;
    private getRequestRate;
    private getRequestFailedRate;
    private getDependencyDuration;
    private getDependencyRate;
    private getDependencyFailedRate;
    private getExceptionRate;
    private getPhysicalMemory;
    private getProcessorTimeNormalized;
    private updateConfiguration;
    private parseDocumentFilterConfiguration;
    private applyDocumentFilters;
    private parseMetricFilterConfiguration;
    private checkMetricFilterAndCreateProjection;
}
//# sourceMappingURL=liveMetrics.d.ts.map