import type { OperationalMetric } from "../../generated-proto/pb_schema/camera_kit/v3/operational_metrics"; type MetricConstructor = new (name: string, dimensions: MetricDimensions) => T; declare const nameDelimiter = "_"; /** @internal */ export type MetricDimensions = Record; /** @internal */ export declare abstract class Metric { readonly name: string; readonly dimensions: MetricDimensions; constructor(name: string, dimensions?: MetricDimensions); child(constructor: MetricConstructor, name: ChildName, dimensions?: MetricDimensions): T; abstract toOperationalMetric(): Required[]; } /** @internal */ export type JoinMetricNames = `${Parent}${typeof nameDelimiter}${Child}`; /** @internal */ export declare function joinMetricNames(names: string[]): string; /** @internal */ export declare function serializeMetricDimensions(dimensions: MetricDimensions): string; export {}; //# sourceMappingURL=Metric.d.ts.map