chromium/tools/typescript/definitions/metrics_private.d.ts

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

/**
 * @fileoverview Definitions for chrome.metricsPrivate API
 * Generated from: extensions/common/api/metrics_private.json
 * run `tools/json_schema_compiler/compiler.py
 * extensions/common/api/metrics_private.json -g ts_definitions` to regenerate.
 */



declare namespace chrome {
  export namespace metricsPrivate {

    export enum MetricTypeType {
      HISTOGRAM_LOG = 'histogram-log',
      HISTOGRAM_LINEAR = 'histogram-linear',
    }

    export interface MetricType {
      metricName: string;
      type: MetricTypeType;
      min: number;
      max: number;
      buckets: number;
    }

    export interface HistogramBucket {
      min: number;
      max: number;
      count: number;
    }

    export interface Histogram {
      sum: number;
      buckets: HistogramBucket[];
    }

    export function getHistogram(name: string): Promise<Histogram>;

    export function getIsCrashReportingEnabled(): Promise<boolean>;

    export function getFieldTrial(name: string): Promise<string>;

    export function getVariationParams(name: string): Promise<{
      [key: string]: string,
    }|undefined>;

    export function recordUserAction(name: string): void;

    export function recordPercentage(metricName: string, value: number): void;

    export function recordCount(metricName: string, value: number): void;

    export function recordSmallCount(metricName: string, value: number): void;

    export function recordMediumCount(metricName: string, value: number): void;

    export function recordTime(metricName: string, value: number): void;

    export function recordMediumTime(metricName: string, value: number): void;

    export function recordLongTime(metricName: string, value: number): void;

    export function recordSparseValueWithHashMetricName(
        metricName: string, value: string): void;

    export function recordSparseValueWithPersistentHash(
        metricName: string, value: string): void;

    export function recordSparseValue(metricName: string, value: number): void;

    export function recordValue(metric: MetricType, value: number): void;

    export function recordBoolean(metricName: string, value: boolean): void;

    export function recordEnumerationValue(
        metricName: string, value: number, enumSize: number): void;
  }
}