//
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated from file protos/perfetto/metrics/android/batt_metric.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/metrics/android/batt_metric.proto.
 */
export const file_protos_perfetto_metrics_android_batt_metric: GenFile = /*@__PURE__*/
  fileDesc("CjFwcm90b3MvcGVyZmV0dG8vbWV0cmljcy9hbmRyb2lkL2JhdHRfbWV0cmljLnByb3RvEg9wZXJmZXR0by5wcm90b3MikwYKFEFuZHJvaWRCYXR0ZXJ5TWV0cmljEk8KEGJhdHRlcnlfY291bnRlcnMYASADKAsyNS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZEJhdHRlcnlNZXRyaWMuQmF0dGVyeUNvdW50ZXJzElMKEmJhdHRlcnlfYWdncmVnYXRlcxgCIAEoCzI3LnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkQmF0dGVyeU1ldHJpYy5CYXR0ZXJ5QWdncmVnYXRlcxJLCg5zdXNwZW5kX3BlcmlvZBgDIAMoCzIzLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkQmF0dGVyeU1ldHJpYy5TdXNwZW5kUGVyaW9kGp0BCg9CYXR0ZXJ5Q291bnRlcnMSFAoMdGltZXN0YW1wX25zGAEgASgDEhoKEmNoYXJnZV9jb3VudGVyX3VhaBgCIAEoARIYChBjYXBhY2l0eV9wZXJjZW50GAMgASgCEhIKCmN1cnJlbnRfdWEYBCABKAESFgoOY3VycmVudF9hdmdfdWEYBSABKAESEgoKdm9sdGFnZV91dhgGIAEoARqrAgoRQmF0dGVyeUFnZ3JlZ2F0ZXMSGwoTdG90YWxfc2NyZWVuX29mZl9ucxgBIAEoAxIaChJ0b3RhbF9zY3JlZW5fb25fbnMYAiABKAMSHAoUdG90YWxfc2NyZWVuX2RvemVfbnMYAyABKAMSGQoRdG90YWxfd2FrZWxvY2tfbnMYBCABKAMSEAoIc2xlZXBfbnMYBSABKAMSGwoTc2xlZXBfc2NyZWVuX29mZl9ucxgGIAEoAxIaChJzbGVlcF9zY3JlZW5fb25fbnMYByABKAMSHAoUc2xlZXBfc2NyZWVuX2RvemVfbnMYCCABKAMSFAoMYXZnX3Bvd2VyX213GAkgASgBEiUKHWF2Z19wb3dlcl9mcm9tX2NoYXJnZV9kaWZmX213GAogASgBGjoKDVN1c3BlbmRQZXJpb2QSFAoMdGltZXN0YW1wX25zGAEgASgDEhMKC2R1cmF0aW9uX25zGAIgASgD");

/**
 * @generated from message perfetto.protos.AndroidBatteryMetric
 */
export type AndroidBatteryMetric = Message<"perfetto.protos.AndroidBatteryMetric"> & {
  /**
   * Battery counters info for each ts of the trace. This should only be
   * extracted for short traces.
   *
   * @generated from field: repeated perfetto.protos.AndroidBatteryMetric.BatteryCounters battery_counters = 1;
   */
  batteryCounters: AndroidBatteryMetric_BatteryCounters[];

  /**
   * @generated from field: optional perfetto.protos.AndroidBatteryMetric.BatteryAggregates battery_aggregates = 2;
   */
  batteryAggregates?: AndroidBatteryMetric_BatteryAggregates;

  /**
   * @generated from field: repeated perfetto.protos.AndroidBatteryMetric.SuspendPeriod suspend_period = 3;
   */
  suspendPeriod: AndroidBatteryMetric_SuspendPeriod[];
};

/**
 * Describes the message perfetto.protos.AndroidBatteryMetric.
 * Use `create(AndroidBatteryMetricSchema)` to create a new message.
 */
export const AndroidBatteryMetricSchema: GenMessage<AndroidBatteryMetric> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_batt_metric, 0);

/**
 * @generated from message perfetto.protos.AndroidBatteryMetric.BatteryCounters
 */
export type AndroidBatteryMetric_BatteryCounters = Message<"perfetto.protos.AndroidBatteryMetric.BatteryCounters"> & {
  /**
   * Timestamp measured from boot time [ns].
   *
   * @generated from field: optional int64 timestamp_ns = 1;
   */
  timestampNs: bigint;

  /**
   * Fields 2-5 are the same as in BatteryCounters proto in TracePacket.
   *
   * @generated from field: optional double charge_counter_uah = 2;
   */
  chargeCounterUah: number;

  /**
   * @generated from field: optional float capacity_percent = 3;
   */
  capacityPercent: number;

  /**
   * @generated from field: optional double current_ua = 4;
   */
  currentUa: number;

  /**
   * @generated from field: optional double current_avg_ua = 5;
   */
  currentAvgUa: number;

  /**
   * @generated from field: optional double voltage_uv = 6;
   */
  voltageUv: number;
};

/**
 * Describes the message perfetto.protos.AndroidBatteryMetric.BatteryCounters.
 * Use `create(AndroidBatteryMetric_BatteryCountersSchema)` to create a new message.
 */
export const AndroidBatteryMetric_BatteryCountersSchema: GenMessage<AndroidBatteryMetric_BatteryCounters> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_batt_metric, 0, 0);

/**
 * @generated from message perfetto.protos.AndroidBatteryMetric.BatteryAggregates
 */
export type AndroidBatteryMetric_BatteryAggregates = Message<"perfetto.protos.AndroidBatteryMetric.BatteryAggregates"> & {
  /**
   * Field numbers for these 3 == the int values from Android
   *
   * @generated from field: optional int64 total_screen_off_ns = 1;
   */
  totalScreenOffNs: bigint;

  /**
   * @generated from field: optional int64 total_screen_on_ns = 2;
   */
  totalScreenOnNs: bigint;

  /**
   * @generated from field: optional int64 total_screen_doze_ns = 3;
   */
  totalScreenDozeNs: bigint;

  /**
   * Total time a wakelock was held
   *
   * @generated from field: optional int64 total_wakelock_ns = 4;
   */
  totalWakelockNs: bigint;

  /**
   * Amount of time the device was suspended. Depends on the ftrace source
   * "power/suspend_resume".
   *
   * @generated from field: optional int64 sleep_ns = 5;
   */
  sleepNs: bigint;

  /**
   * @generated from field: optional int64 sleep_screen_off_ns = 6;
   */
  sleepScreenOffNs: bigint;

  /**
   * @generated from field: optional int64 sleep_screen_on_ns = 7;
   */
  sleepScreenOnNs: bigint;

  /**
   * @generated from field: optional int64 sleep_screen_doze_ns = 8;
   */
  sleepScreenDozeNs: bigint;

  /**
   * Average power over the duration of the trace.
   *
   * @generated from field: optional double avg_power_mw = 9;
   */
  avgPowerMw: number;

  /**
   * Average power from charge difference at the start and end of the trace.
   *
   * @generated from field: optional double avg_power_from_charge_diff_mw = 10;
   */
  avgPowerFromChargeDiffMw: number;
};

/**
 * Describes the message perfetto.protos.AndroidBatteryMetric.BatteryAggregates.
 * Use `create(AndroidBatteryMetric_BatteryAggregatesSchema)` to create a new message.
 */
export const AndroidBatteryMetric_BatteryAggregatesSchema: GenMessage<AndroidBatteryMetric_BatteryAggregates> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_batt_metric, 0, 1);

/**
 * Period of time during the trace that the device went to sleep completely.
 *
 * @generated from message perfetto.protos.AndroidBatteryMetric.SuspendPeriod
 */
export type AndroidBatteryMetric_SuspendPeriod = Message<"perfetto.protos.AndroidBatteryMetric.SuspendPeriod"> & {
  /**
   * @generated from field: optional int64 timestamp_ns = 1;
   */
  timestampNs: bigint;

  /**
   * @generated from field: optional int64 duration_ns = 2;
   */
  durationNs: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidBatteryMetric.SuspendPeriod.
 * Use `create(AndroidBatteryMetric_SuspendPeriodSchema)` to create a new message.
 */
export const AndroidBatteryMetric_SuspendPeriodSchema: GenMessage<AndroidBatteryMetric_SuspendPeriod> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_batt_metric, 0, 2);

