chromium/chrome/browser/resources/chromeos/accessibility/definitions/metrics_private.d.ts

// Copyright 2023 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, callback: (histogram: Histogram) => void): void;

    export function getIsCrashReportingEnabled(
        callback: (enabled: boolean) => void): void;

    export function getFieldTrial(
        name: string, callback: (fieldTrial: string) => void): void;

    export function getVariationParams(
        name: string,
        callback: (params: {[key: string]: string}) => void): void;

    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;

  }
}