import type { AggregationTemporalitySelector } from '../export/AggregationSelector'; import type { CollectionResult, InstrumentType } from '../export/MetricData'; import type { MetricCollectOptions, MetricProducer } from '../export/MetricProducer'; import type { IMetricReader } from '../export/MetricReader'; import type { ForceFlushOptions, ShutdownOptions } from '../types'; import type { MeterProviderSharedState } from './MeterProviderSharedState'; /** * An internal opaque interface that the MetricReader receives as * MetricProducer. It acts as the storage key to the internal metric stream * state for each MetricReader. */ export declare class MetricCollector implements MetricProducer { private _sharedState; private _metricReader; constructor(sharedState: MeterProviderSharedState, metricReader: IMetricReader); collect(options?: MetricCollectOptions): Promise; /** * Delegates for MetricReader.forceFlush. */ forceFlush(options?: ForceFlushOptions): Promise; /** * Delegates for MetricReader.shutdown. */ shutdown(options?: ShutdownOptions): Promise; selectAggregationTemporality(instrumentType: InstrumentType): import("..").AggregationTemporality; selectAggregation(instrumentType: InstrumentType): import("..").AggregationOption; /** * Select the cardinality limit for the given {@link InstrumentType} for this * collector. */ selectCardinalityLimit(instrumentType: InstrumentType): number; } /** * An internal interface for MetricCollector. Exposes the necessary * information for metric collection. */ export interface MetricCollectorHandle { selectAggregationTemporality: AggregationTemporalitySelector; selectCardinalityLimit(instrumentType: InstrumentType): number; } //# sourceMappingURL=MetricCollector.d.ts.map