//
// Copyright (C) 2023 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/trace/power/android_entity_state_residency.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/trace/power/android_entity_state_residency.proto.
 */
export const file_protos_perfetto_trace_power_android_entity_state_residency: GenFile = /*@__PURE__*/
  fileDesc("CkBwcm90b3MvcGVyZmV0dG8vdHJhY2UvcG93ZXIvYW5kcm9pZF9lbnRpdHlfc3RhdGVfcmVzaWRlbmN5LnByb3RvEg9wZXJmZXR0by5wcm90b3MiuwMKFEVudGl0eVN0YXRlUmVzaWRlbmN5ElIKEnBvd2VyX2VudGl0eV9zdGF0ZRgBIAMoCzI2LnBlcmZldHRvLnByb3Rvcy5FbnRpdHlTdGF0ZVJlc2lkZW5jeS5Qb3dlckVudGl0eVN0YXRlEkcKCXJlc2lkZW5jeRgCIAMoCzI0LnBlcmZldHRvLnByb3Rvcy5FbnRpdHlTdGF0ZVJlc2lkZW5jeS5TdGF0ZVJlc2lkZW5jeRpmChBQb3dlckVudGl0eVN0YXRlEhQKDGVudGl0eV9pbmRleBgBIAEoBRITCgtzdGF0ZV9pbmRleBgCIAEoBRITCgtlbnRpdHlfbmFtZRgDIAEoCRISCgpzdGF0ZV9uYW1lGAQgASgJGp0BCg5TdGF0ZVJlc2lkZW5jeRIUCgxlbnRpdHlfaW5kZXgYASABKAUSEwoLc3RhdGVfaW5kZXgYAiABKAUSHgoWdG90YWxfdGltZV9pbl9zdGF0ZV9tcxgDIAEoBBIfChd0b3RhbF9zdGF0ZV9lbnRyeV9jb3VudBgEIAEoBBIfChdsYXN0X2VudHJ5X3RpbWVzdGFtcF9tcxgFIAEoBA");

/**
 * @generated from message perfetto.protos.EntityStateResidency
 */
export type EntityStateResidency = Message<"perfetto.protos.EntityStateResidency"> & {
  /**
   * This is only emitted at the beginning of the trace.
   *
   * @generated from field: repeated perfetto.protos.EntityStateResidency.PowerEntityState power_entity_state = 1;
   */
  powerEntityState: EntityStateResidency_PowerEntityState[];

  /**
   * @generated from field: repeated perfetto.protos.EntityStateResidency.StateResidency residency = 2;
   */
  residency: EntityStateResidency_StateResidency[];
};

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

/**
 * @generated from message perfetto.protos.EntityStateResidency.PowerEntityState
 */
export type EntityStateResidency_PowerEntityState = Message<"perfetto.protos.EntityStateResidency.PowerEntityState"> & {
  /**
   * Index corresponding to the entity
   *
   * @generated from field: optional int32 entity_index = 1;
   */
  entityIndex: number;

  /**
   * Index corresponding to the state
   *
   * @generated from field: optional int32 state_index = 2;
   */
  stateIndex: number;

  /**
   * Name of the entity. This is device-specific, determined by the PowerStats
   * HAL, and cannot be configured by the user. An example would be
   * "Bluetooth".
   *
   * @generated from field: optional string entity_name = 3;
   */
  entityName: string;

  /**
   * Name of the state. This is device-specific, determined by the PowerStats
   * HAL, and cannot be configured by the user. An example would be
   * "Active".
   *
   * @generated from field: optional string state_name = 4;
   */
  stateName: string;
};

/**
 * Describes the message perfetto.protos.EntityStateResidency.PowerEntityState.
 * Use `create(EntityStateResidency_PowerEntityStateSchema)` to create a new message.
 */
export const EntityStateResidency_PowerEntityStateSchema: GenMessage<EntityStateResidency_PowerEntityState> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_power_android_entity_state_residency, 0, 0);

/**
 * @generated from message perfetto.protos.EntityStateResidency.StateResidency
 */
export type EntityStateResidency_StateResidency = Message<"perfetto.protos.EntityStateResidency.StateResidency"> & {
  /**
   * Index corresponding to PowerEntityState.entity_index
   *
   * @generated from field: optional int32 entity_index = 1;
   */
  entityIndex: number;

  /**
   * Index corresponding to PowerEntityState.state_index
   *
   * @generated from field: optional int32 state_index = 2;
   */
  stateIndex: number;

  /**
   * Time since boot that this entity has been in this state
   *
   * @generated from field: optional uint64 total_time_in_state_ms = 3;
   */
  totalTimeInStateMs: bigint;

  /**
   * Total number of times since boot that the entity has entered this state
   *
   * @generated from field: optional uint64 total_state_entry_count = 4;
   */
  totalStateEntryCount: bigint;

  /**
   * Timestamp of the last time the entity entered this state
   *
   * @generated from field: optional uint64 last_entry_timestamp_ms = 5;
   */
  lastEntryTimestampMs: bigint;
};

/**
 * Describes the message perfetto.protos.EntityStateResidency.StateResidency.
 * Use `create(EntityStateResidency_StateResidencySchema)` to create a new message.
 */
export const EntityStateResidency_StateResidencySchema: GenMessage<EntityStateResidency_StateResidency> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_power_android_entity_state_residency, 0, 1);

