import { AutodocMetadata } from '@rsdk/autodoc.protocol'; import type { Constructor } from '@rsdk/common'; import { RsdkMetadata } from '@rsdk/metadata'; import type { AnyMetric, MetricMetadata } from '../types'; import { metricsDocumentResolver } from './autodoc/metrics.autodoc-resolver'; import { METRIC_RSDK_METADATA_SCOPE } from './constants'; import type { MetricRsdkMetadata } from './types'; // separate class because we don't want to expose this export class MetricsRegistry { static register( target: Constructor, metric: MetricMetadata, ): void { RsdkMetadata.add( target, { metricController: target, metadata: metric, }, METRIC_RSDK_METADATA_SCOPE, ); AutodocMetadata.defineResolver( target, METRIC_RSDK_METADATA_SCOPE, metricsDocumentResolver, ); } }