//
// Copyright (C) 2024 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/wattson_in_time_period.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/wattson_in_time_period.proto.
 */
export const file_protos_perfetto_metrics_android_wattson_in_time_period: GenFile = /*@__PURE__*/
  fileDesc("Cjxwcm90b3MvcGVyZmV0dG8vbWV0cmljcy9hbmRyb2lkL3dhdHRzb25faW5fdGltZV9wZXJpb2QucHJvdG8SD3BlcmZldHRvLnByb3RvcyKXAQoeQW5kcm9pZFdhdHRzb25UaW1lUGVyaW9kTWV0cmljEhYKDm1ldHJpY192ZXJzaW9uGAEgASgFEhsKE3Bvd2VyX21vZGVsX3ZlcnNpb24YAiABKAUSQAoLcGVyaW9kX2luZm8YAyADKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFdhdHRzb25Fc3RpbWF0ZUluZm8ipAEKGkFuZHJvaWRXYXR0c29uRXN0aW1hdGVJbmZvEhEKCXBlcmlvZF9pZBgBIAEoBRITCgtwZXJpb2RfbmFtZRgCIAEoCRISCgpwZXJpb2RfZHVyGAMgASgDEkoKDWNwdV9zdWJzeXN0ZW0YBCABKAsyMy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFdhdHRzb25DcHVTdWJzeXN0ZW1Fc3RpbWF0ZSKRBQoiQW5kcm9pZFdhdHRzb25DcHVTdWJzeXN0ZW1Fc3RpbWF0ZRIUCgxlc3RpbWF0ZWRfbXcYASABKAISFQoNZXN0aW1hdGVkX213cxgCIAEoAhI+Cgdwb2xpY3kwGAMgASgLMi0ucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRXYXR0c29uUG9saWN5RXN0aW1hdGUSPgoHcG9saWN5MRgEIAEoCzItLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkV2F0dHNvblBvbGljeUVzdGltYXRlEj4KB3BvbGljeTIYBSABKAsyLS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFdhdHRzb25Qb2xpY3lFc3RpbWF0ZRI+Cgdwb2xpY3kzGAYgASgLMi0ucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRXYXR0c29uUG9saWN5RXN0aW1hdGUSPgoHcG9saWN5NBgHIAEoCzItLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkV2F0dHNvblBvbGljeUVzdGltYXRlEj4KB3BvbGljeTUYCCABKAsyLS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFdhdHRzb25Qb2xpY3lFc3RpbWF0ZRI+Cgdwb2xpY3k2GAkgASgLMi0ucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRXYXR0c29uUG9saWN5RXN0aW1hdGUSPgoHcG9saWN5NxgKIAEoCzItLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkV2F0dHNvblBvbGljeUVzdGltYXRlEj4KB2RzdV9zY3UYCyABKAsyLS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFdhdHRzb25Ec3VTY3VFc3RpbWF0ZSKbBAocQW5kcm9pZFdhdHRzb25Qb2xpY3lFc3RpbWF0ZRIUCgxlc3RpbWF0ZWRfbXcYASABKAISFQoNZXN0aW1hdGVkX213cxgCIAEoAhI4CgRjcHUwGAMgASgLMioucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRXYXR0c29uQ3B1RXN0aW1hdGUSOAoEY3B1MRgEIAEoCzIqLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkV2F0dHNvbkNwdUVzdGltYXRlEjgKBGNwdTIYBSABKAsyKi5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFdhdHRzb25DcHVFc3RpbWF0ZRI4CgRjcHUzGAYgASgLMioucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRXYXR0c29uQ3B1RXN0aW1hdGUSOAoEY3B1NBgHIAEoCzIqLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkV2F0dHNvbkNwdUVzdGltYXRlEjgKBGNwdTUYCCABKAsyKi5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFdhdHRzb25DcHVFc3RpbWF0ZRI4CgRjcHU2GAkgASgLMioucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRXYXR0c29uQ3B1RXN0aW1hdGUSOAoEY3B1NxgKIAEoCzIqLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkV2F0dHNvbkNwdUVzdGltYXRlIkgKGUFuZHJvaWRXYXR0c29uQ3B1RXN0aW1hdGUSFAoMZXN0aW1hdGVkX213GAEgASgCEhUKDWVzdGltYXRlZF9td3MYAiABKAIiSwocQW5kcm9pZFdhdHRzb25Ec3VTY3VFc3RpbWF0ZRIUCgxlc3RpbWF0ZWRfbXcYASABKAISFQoNZXN0aW1hdGVkX213cxgCIAEoAg");

/**
 * @generated from message perfetto.protos.AndroidWattsonTimePeriodMetric
 */
export type AndroidWattsonTimePeriodMetric = Message<"perfetto.protos.AndroidWattsonTimePeriodMetric"> & {
  /**
   * Each version increment means updated structure format or field
   *
   * @generated from field: optional int32 metric_version = 1;
   */
  metricVersion: number;

  /**
   * Each version increment means power model has been updated and estimates
   * might change for the exact same input. Don't compare estimates across
   * different power model versions.
   *
   * @generated from field: optional int32 power_model_version = 2;
   */
  powerModelVersion: number;

  /**
   * @generated from field: repeated perfetto.protos.AndroidWattsonEstimateInfo period_info = 3;
   */
  periodInfo: AndroidWattsonEstimateInfo[];
};

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

/**
 * @generated from message perfetto.protos.AndroidWattsonEstimateInfo
 */
export type AndroidWattsonEstimateInfo = Message<"perfetto.protos.AndroidWattsonEstimateInfo"> & {
  /**
   * @generated from field: optional int32 period_id = 1;
   */
  periodId: number;

  /**
   * @generated from field: optional string period_name = 2;
   */
  periodName: string;

  /**
   * @generated from field: optional int64 period_dur = 3;
   */
  periodDur: bigint;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonCpuSubsystemEstimate cpu_subsystem = 4;
   */
  cpuSubsystem?: AndroidWattsonCpuSubsystemEstimate;
};

/**
 * Describes the message perfetto.protos.AndroidWattsonEstimateInfo.
 * Use `create(AndroidWattsonEstimateInfoSchema)` to create a new message.
 */
export const AndroidWattsonEstimateInfoSchema: GenMessage<AndroidWattsonEstimateInfo> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_wattson_in_time_period, 1);

/**
 * @generated from message perfetto.protos.AndroidWattsonCpuSubsystemEstimate
 */
export type AndroidWattsonCpuSubsystemEstimate = Message<"perfetto.protos.AndroidWattsonCpuSubsystemEstimate"> & {
  /**
   * estimates and estimates of subrails
   *
   * @generated from field: optional float estimated_mw = 1;
   */
  estimatedMw: number;

  /**
   * @generated from field: optional float estimated_mws = 2;
   */
  estimatedMws: number;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonPolicyEstimate policy0 = 3;
   */
  policy0?: AndroidWattsonPolicyEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonPolicyEstimate policy1 = 4;
   */
  policy1?: AndroidWattsonPolicyEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonPolicyEstimate policy2 = 5;
   */
  policy2?: AndroidWattsonPolicyEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonPolicyEstimate policy3 = 6;
   */
  policy3?: AndroidWattsonPolicyEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonPolicyEstimate policy4 = 7;
   */
  policy4?: AndroidWattsonPolicyEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonPolicyEstimate policy5 = 8;
   */
  policy5?: AndroidWattsonPolicyEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonPolicyEstimate policy6 = 9;
   */
  policy6?: AndroidWattsonPolicyEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonPolicyEstimate policy7 = 10;
   */
  policy7?: AndroidWattsonPolicyEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonDsuScuEstimate dsu_scu = 11;
   */
  dsuScu?: AndroidWattsonDsuScuEstimate;
};

/**
 * Describes the message perfetto.protos.AndroidWattsonCpuSubsystemEstimate.
 * Use `create(AndroidWattsonCpuSubsystemEstimateSchema)` to create a new message.
 */
export const AndroidWattsonCpuSubsystemEstimateSchema: GenMessage<AndroidWattsonCpuSubsystemEstimate> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_wattson_in_time_period, 2);

/**
 * @generated from message perfetto.protos.AndroidWattsonPolicyEstimate
 */
export type AndroidWattsonPolicyEstimate = Message<"perfetto.protos.AndroidWattsonPolicyEstimate"> & {
  /**
   * @generated from field: optional float estimated_mw = 1;
   */
  estimatedMw: number;

  /**
   * @generated from field: optional float estimated_mws = 2;
   */
  estimatedMws: number;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonCpuEstimate cpu0 = 3;
   */
  cpu0?: AndroidWattsonCpuEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonCpuEstimate cpu1 = 4;
   */
  cpu1?: AndroidWattsonCpuEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonCpuEstimate cpu2 = 5;
   */
  cpu2?: AndroidWattsonCpuEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonCpuEstimate cpu3 = 6;
   */
  cpu3?: AndroidWattsonCpuEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonCpuEstimate cpu4 = 7;
   */
  cpu4?: AndroidWattsonCpuEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonCpuEstimate cpu5 = 8;
   */
  cpu5?: AndroidWattsonCpuEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonCpuEstimate cpu6 = 9;
   */
  cpu6?: AndroidWattsonCpuEstimate;

  /**
   * @generated from field: optional perfetto.protos.AndroidWattsonCpuEstimate cpu7 = 10;
   */
  cpu7?: AndroidWattsonCpuEstimate;
};

/**
 * Describes the message perfetto.protos.AndroidWattsonPolicyEstimate.
 * Use `create(AndroidWattsonPolicyEstimateSchema)` to create a new message.
 */
export const AndroidWattsonPolicyEstimateSchema: GenMessage<AndroidWattsonPolicyEstimate> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_wattson_in_time_period, 3);

/**
 * @generated from message perfetto.protos.AndroidWattsonCpuEstimate
 */
export type AndroidWattsonCpuEstimate = Message<"perfetto.protos.AndroidWattsonCpuEstimate"> & {
  /**
   * @generated from field: optional float estimated_mw = 1;
   */
  estimatedMw: number;

  /**
   * @generated from field: optional float estimated_mws = 2;
   */
  estimatedMws: number;
};

/**
 * Describes the message perfetto.protos.AndroidWattsonCpuEstimate.
 * Use `create(AndroidWattsonCpuEstimateSchema)` to create a new message.
 */
export const AndroidWattsonCpuEstimateSchema: GenMessage<AndroidWattsonCpuEstimate> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_wattson_in_time_period, 4);

/**
 * @generated from message perfetto.protos.AndroidWattsonDsuScuEstimate
 */
export type AndroidWattsonDsuScuEstimate = Message<"perfetto.protos.AndroidWattsonDsuScuEstimate"> & {
  /**
   * @generated from field: optional float estimated_mw = 1;
   */
  estimatedMw: number;

  /**
   * @generated from field: optional float estimated_mws = 2;
   */
  estimatedMws: number;
};

/**
 * Describes the message perfetto.protos.AndroidWattsonDsuScuEstimate.
 * Use `create(AndroidWattsonDsuScuEstimateSchema)` to create a new message.
 */
export const AndroidWattsonDsuScuEstimateSchema: GenMessage<AndroidWattsonDsuScuEstimate> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_wattson_in_time_period, 5);

