UNPKG

perfetto-protos

Version:

Perfetto protos exposed via protobuf-es for browser and node

1,386 lines 54.4 kB
//
// 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/startup_metric.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { AndroidProcessMetadata } from "./process_metadata_pb";
import { file_protos_perfetto_metrics_android_process_metadata } from "./process_metadata_pb";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/metrics/android/startup_metric.proto.
 */
export const file_protos_perfetto_metrics_android_startup_metric: GenFile = /*@__PURE__*/
  fileDesc("CjRwcm90b3MvcGVyZmV0dG8vbWV0cmljcy9hbmRyb2lkL3N0YXJ0dXBfbWV0cmljLnByb3RvEg9wZXJmZXR0by5wcm90b3Mi0DkKFEFuZHJvaWRTdGFydHVwTWV0cmljEj4KB3N0YXJ0dXAYASADKAsyLS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU3RhcnR1cBrlAQoSVGFza1N0YXRlQnJlYWtkb3duEhYKDnJ1bm5pbmdfZHVyX25zGAEgASgDEhcKD3J1bm5hYmxlX2R1cl9ucxgCIAEoAxIkChx1bmludGVycnVwdGlibGVfc2xlZXBfZHVyX25zGAMgASgDEiIKGmludGVycnVwdGlibGVfc2xlZXBfZHVyX25zGAQgASgDEicKH3VuaW50ZXJydXB0aWJsZV9pb19zbGVlcF9kdXJfbnMYBSABKAMSKwojdW5pbnRlcnJ1cHRpYmxlX25vbl9pb19zbGVlcF9kdXJfbnMYBiABKAMaUQoRTWN5Y2xlc0J5Q29yZVR5cGUSDgoGbGl0dGxlGAEgASgDEgsKA2JpZxgCIAEoAxIOCgZiaWdnZXIYAyABKAMSDwoHdW5rbm93bhgEIAEoAxonCgVTbGljZRIOCgZkdXJfbnMYASABKAMSDgoGZHVyX21zGAIgASgBGpMSCgxUb0ZpcnN0RnJhbWUSDgoGZHVyX25zGAEgASgDEg4KBmR1cl9tcxgRIAEoARJbChltYWluX3RocmVhZF9ieV90YXNrX3N0YXRlGAIgASgLMjgucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLlRhc2tTdGF0ZUJyZWFrZG93bhJVChRtY3ljbGVzX2J5X2NvcmVfdHlwZRgaIAEoCzI3LnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5NY3ljbGVzQnlDb3JlVHlwZRIlCh1vdGhlcl9wcm9jZXNzZXNfc3Bhd25lZF9jb3VudBgDIAEoDRJKChV0aW1lX2FjdGl2aXR5X21hbmFnZXIYBCABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USTgoZdGltZV9hY3Rpdml0eV90aHJlYWRfbWFpbhgFIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRJKChV0aW1lX2JpbmRfYXBwbGljYXRpb24YBiABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USSAoTdGltZV9hY3Rpdml0eV9zdGFydBgHIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRJJChR0aW1lX2FjdGl2aXR5X3Jlc3VtZRgIIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRJKChV0aW1lX2FjdGl2aXR5X3Jlc3RhcnQYFSABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USRwoSdGltZV9jaG9yZW9ncmFwaGVyGAkgASgLMisucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLlNsaWNlEkEKDHRpbWVfaW5mbGF0ZRgWIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRJHChJ0aW1lX2dldF9yZXNvdXJjZXMYFyABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USTgoZdGltZV9iZWZvcmVfc3RhcnRfcHJvY2VzcxgKIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRJOChl0aW1lX2R1cmluZ19zdGFydF9wcm9jZXNzGAsgASgLMisucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLlNsaWNlEkoKFXRpbWVfdG9fcnVubmluZ19zdGF0ZRgjIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRJBCgx0b19wb3N0X2ZvcmsYEiABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USTAoXdG9fYWN0aXZpdHlfdGhyZWFkX21haW4YEyABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USSAoTdG9fYmluZF9hcHBsaWNhdGlvbhgUIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRJDCg50aW1lX3Bvc3RfZm9yaxgQIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRJOChl0aW1lX2NsYXNzX2luaXRpYWxpemF0aW9uGCQgASgLMisucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLlNsaWNlEkIKDXRpbWVfZGV4X29wZW4YGCABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USRgoRdGltZV92ZXJpZnlfY2xhc3MYGSABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USHAoUaml0X2NvbXBpbGVkX21ldGhvZHMYGyABKA0SIgoaY2xhc3NfaW5pdGlhbGl6YXRpb25fY291bnQYJSABKA0SUAobdGltZV9qaXRfdGhyZWFkX3Bvb2xfb25fY3B1GBwgASgLMisucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLlNsaWNlEkIKDXRpbWVfZ2NfdG90YWwYHSABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USQwoOdGltZV9nY19vbl9jcHUYHiABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USVQogdGltZV9sb2NrX2NvbnRlbnRpb25fdGhyZWFkX21haW4YHyABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USWAojdGltZV9tb25pdG9yX2NvbnRlbnRpb25fdGhyZWFkX21haW4YICABKAsyKy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xpY2USTgoZdGltZV9kZXhfb3Blbl90aHJlYWRfbWFpbhghIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRJMChd0aW1lX2Rsb3Blbl90aHJlYWRfbWFpbhgiIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZUoECAwQDUoECA0QDkoECA4QD0oECA8QEBpPCgpIc2NNZXRyaWNzEkEKDGZ1bGxfc3RhcnR1cBgBIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRpHCghBY3Rpdml0eRIMCgRuYW1lGAEgASgJEg4KBm1ldGhvZBgCIAEoCRIXCg90c19tZXRob2Rfc3RhcnQYBCABKANKBAgDEAQaywEKEUJpbmRlclRyYW5zYWN0aW9uEj0KCGR1cmF0aW9uGAEgASgLMisucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLlNsaWNlEg4KBnRocmVhZBgCIAEoCRIaChJkZXN0aW5hdGlvbl90aHJlYWQYAyABKAkSGwoTZGVzdGluYXRpb25fcHJvY2VzcxgEIAEoCRINCgVmbGFncxgFIAEoCRIMCgRjb2RlGAYgASgJEhEKCWRhdGFfc2l6ZRgHIAEoAxqEAQoST3B0aW1pemF0aW9uU3RhdHVzEhMKC29kZXhfc3RhdHVzGAEgASgJEhoKEmNvbXBpbGF0aW9uX2ZpbHRlchgCIAEoCRIaChJjb21waWxhdGlvbl9yZWFzb24YAyABKAkSEAoIbG9jYXRpb24YBCABKAkSDwoHc3VtbWFyeRgFIAEoCRorCgtWZXJpZnlDbGFzcxIMCgRuYW1lGAEgASgJEg4KBmR1cl9ucxgCIAEoAxo/Cg9FdmVudFRpbWVzdGFtcHMSFwoPaW50ZW50X3JlY2VpdmVkGAEgASgDEhMKC2ZpcnN0X2ZyYW1lGAIgASgDGukBCgtTeXN0ZW1TdGF0ZRIbCg9kZXgyb2F0X3J1bm5pbmcYASABKAhCAhgBEhwKEGluc3RhbGxkX3J1bm5pbmcYAiABKAhCAhgBEiIKGmJyb2FkY2FzdF9kaXNwYXRjaGVkX2NvdW50GAMgASgDEiAKGGJyb2FkY2FzdF9yZWNlaXZlZF9jb3VudBgEIAEoAxIoCiBtb3N0X2FjdGl2ZV9ub25fbGF1bmNoX3Byb2Nlc3NlcxgFIAMoCRIXCg9pbnN0YWxsZF9kdXJfbnMYBiABKAMSFgoOZGV4Mm9hdF9kdXJfbnMYByABKAMaOgoXU2xvd1N0YXJ0UmVhc29uRGV0YWlsZWQSDgoGcmVhc29uGAEgASgJEg8KB2RldGFpbHMYAiABKAka9gsKD1Nsb3dTdGFydFJlYXNvbhJRCglyZWFzb25faWQYASABKA4yPi5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xvd1N0YXJ0UmVhc29uLlJlYXNvbklkEg4KBnJlYXNvbhgCIAEoCRJVCghzZXZlcml0eRgKIAEoDjJDLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbG93U3RhcnRSZWFzb24uU2V2ZXJpdHlMZXZlbBJMCg5leHBlY3RlZF92YWx1ZRgDIAEoCzI0LnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5UaHJlc2hvbGRWYWx1ZRJHCgxhY3R1YWxfdmFsdWUYBCABKAsyMS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuQWN0dWFsVmFsdWUSEgoKbGF1bmNoX2R1chgFIAEoAxIQCghkdXJhdGlvbhgGIAEoAxJZChR0cmFjZV9zbGljZV9zZWN0aW9ucxgHIAEoCzI7LnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5UcmFjZVNsaWNlU2VjdGlvbkluZm8SWwoVdHJhY2VfdGhyZWFkX3NlY3Rpb25zGAggASgLMjwucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLlRyYWNlVGhyZWFkU2VjdGlvbkluZm8SFwoPYWRkaXRpb25hbF9pbmZvGAkgASgJIs0GCghSZWFzb25JZBIZChVSRUFTT05fSURfVU5TUEVDSUZJRUQQABIhCh1OT19CQVNFTElORV9PUl9DTE9VRF9QUk9GSUxFUxABEhAKDFJVTl9GUk9NX0FQSxACEhIKDlVOTE9DS19SVU5OSU5HEAMSGgoWQVBQX0lOX0RFQlVHR0FCTEVfTU9ERRAEEg8KC0dDX0FDVElWSVRZEAUSEwoPREVYMk9BVF9SVU5OSU5HEAYSFAoQSU5TVEFMTERfUlVOTklORxAHEiYKIk1BSU5fVEhSRUFEX1RJTUVfU1BFTlRfSU5fUlVOTkFCTEUQCBIxCi1NQUlOX1RIUkVBRF9USU1FX1NQRU5UX0lOX0lOVEVSUlVQVElCTEVfU0xFRVAQCRIpCiVNQUlOX1RIUkVBRF9USU1FX1NQRU5UX0lOX0JMT0NLSU5HX0lPEAoSNQoxTUFJTl9USFJFQURfVElNRV9TUEVOVF9JTl9PUEVOX0RFWF9GSUxFU19GUk9NX09BVBALEiIKHlRJTUVfU1BFTlRfSU5fQklORF9BUFBMSUNBVElPThAMEiAKHFRJTUVfU1BFTlRfSU5fVklFV19JTkZMQVRJT04QDRIxCi1USU1FX1NQRU5UX0lOX1JFU09VUkNFU19NQU5BR0VSX0dFVF9SRVNPVVJDRVMQDhIgChxUSU1FX1NQRU5UX1ZFUklGWUlOR19DTEFTU0VTEA8SMQotUE9URU5USUFMX0NQVV9DT05URU5USU9OX1dJVEhfQU5PVEhFUl9QUk9DRVNTEBASEAoMSklUX0FDVElWSVRZEBESHwobTUFJTl9USFJFQURfTE9DS19DT05URU5USU9OEBISIgoeTUFJTl9USFJFQURfTU9OSVRPUl9DT05URU5USU9OEBMSGAoUSklUX0NPTVBJTEVEX01FVEhPRFMQFBIeChpCUk9BRENBU1RfRElTUEFUQ0hFRF9DT1VOVBAVEhwKGEJST0FEQ0FTVF9SRUNFSVZFRF9DT1VOVBAWEh4KGlNUQVJUVVBfUlVOTklOR19DT05DVVJSRU5UEBcSKwonTUFJTl9USFJFQURfQklOREVSX1RSQU5TQ0FUSU9OU19CTE9DS0VEEBgiSwoNU2V2ZXJpdHlMZXZlbBIYChRTRVZFUklUWV9VTlNQRUNJRklFRBAAEgkKBUVSUk9SEAESCwoHV0FSTklORxACEggKBElORk8QAxrxAQoOVGhyZXNob2xkVmFsdWUSDQoFdmFsdWUYASABKAMSUAoEdW5pdBgCIAEoDjJCLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5UaHJlc2hvbGRWYWx1ZS5UaHJlc2hvbGRVbml0EhcKD2hpZ2hlcl9leHBlY3RlZBgDIAEoCCJlCg1UaHJlc2hvbGRVbml0Eh4KGlRIUkVTSE9MRF9VTklUX1VOU1BFQ0lGSUVEEAASBgoCTlMQARIOCgpQRVJDRU5UQUdFEAISEQoNVFJVRV9PUl9GQUxTRRADEgkKBUNPVU5UEAQaKQoLQWN0dWFsVmFsdWUSDQoFdmFsdWUYASABKAMSCwoDZHVyGAIgASgDGpIBChFUcmFjZVNsaWNlU2VjdGlvbhIXCg9zdGFydF90aW1lc3RhbXAYASABKAMSFQoNZW5kX3RpbWVzdGFtcBgCIAEoAxIQCghzbGljZV9pZBgDIAEoDRISCgpzbGljZV9uYW1lGAQgASgJEhMKC3Byb2Nlc3NfcGlkGAUgASgNEhIKCnRocmVhZF90aWQYBiABKA0alwEKFVRyYWNlU2xpY2VTZWN0aW9uSW5mbxJOCg1zbGljZV9zZWN0aW9uGAEgAygLMjcucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLlRyYWNlU2xpY2VTZWN0aW9uEhcKD3N0YXJ0X3RpbWVzdGFtcBgCIAEoAxIVCg1lbmRfdGltZXN0YW1wGAMgASgDGpcBChJUcmFjZVRocmVhZFNlY3Rpb24SFwoPc3RhcnRfdGltZXN0YW1wGAEgASgDEhUKDWVuZF90aW1lc3RhbXAYAiABKAMSEwoLdGhyZWFkX3V0aWQYAyABKA0SEwoLdGhyZWFkX25hbWUYBCABKAkSEwoLcHJvY2Vzc19waWQYBSABKA0SEgoKdGhyZWFkX3RpZBgGIAEoDRqaAQoWVHJhY2VUaHJlYWRTZWN0aW9uSW5mbxJQCg50aHJlYWRfc2VjdGlvbhgBIAMoCzI4LnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5UcmFjZVRocmVhZFNlY3Rpb24SFwoPc3RhcnRfdGltZXN0YW1wGAIgASgDEhUKDWVuZF90aW1lc3RhbXAYAyABKAMa+gkKB1N0YXJ0dXASEgoKc3RhcnR1cF9pZBgBIAEoDRIUCgxzdGFydHVwX3R5cGUYECABKAkSEQoJY3B1X2NvdW50GBkgASgNEhQKDHBhY2thZ2VfbmFtZRgCIAEoCRIUCgxwcm9jZXNzX25hbWUYAyABKAkSQgoKYWN0aXZpdGllcxgLIAMoCzIuLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5BY3Rpdml0eRJZChhsb25nX2JpbmRlcl90cmFuc2FjdGlvbnMYDiADKAsyNy5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuQmluZGVyVHJhbnNhY3Rpb24SGgoSenlnb3RlX25ld19wcm9jZXNzGAQgASgIEiYKHmFjdGl2aXR5X2hvc3RpbmdfcHJvY2Vzc19jb3VudBgGIAEoDRIfChd0aW1lX3RvX2luaXRpYWxfZGlzcGxheRgWIAEoAxIcChR0aW1lX3RvX2Z1bGxfZGlzcGxheRgXIAEoAxJPChBldmVudF90aW1lc3RhbXBzGA0gASgLMjUucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLkV2ZW50VGltZXN0YW1wcxJKCg50b19maXJzdF9mcmFtZRgFIAEoCzIyLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5Ub0ZpcnN0RnJhbWUSOAoHcHJvY2VzcxgHIAEoCzInLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkUHJvY2Vzc01ldGFkYXRhEj0KA2hzYxgIIAEoCzIwLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5Ic2NNZXRyaWNzEkcKEnJlcG9ydF9mdWxseV9kcmF3bhgJIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkU3RhcnR1cE1ldHJpYy5TbGljZRJVChNvcHRpbWl6YXRpb25fc3RhdHVzGAwgAygLMjgucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLk9wdGltaXphdGlvblN0YXR1cxJHCgx2ZXJpZnlfY2xhc3MYEyADKAsyMS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuVmVyaWZ5Q2xhc3MSEwoLZGxvcGVuX2ZpbGUYFCADKAkSJAocc3RhcnR1cF9jb25jdXJyZW50X3RvX2xhdW5jaBgSIAMoCRJHCgxzeXN0ZW1fc3RhdGUYDyABKAsyMS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU3lzdGVtU3RhdGUSGQoRc2xvd19zdGFydF9yZWFzb24YESADKAkSYQoac2xvd19zdGFydF9yZWFzb25fZGV0YWlsZWQYFSADKAsyPS5wZXJmZXR0by5wcm90b3MuQW5kcm9pZFN0YXJ0dXBNZXRyaWMuU2xvd1N0YXJ0UmVhc29uRGV0YWlsZWQSXQoec2xvd19zdGFydF9yZWFzb25fd2l0aF9kZXRhaWxzGBggAygLMjUucGVyZmV0dG8ucHJvdG9zLkFuZHJvaWRTdGFydHVwTWV0cmljLlNsb3dTdGFydFJlYXNvbkoECAoQCw", [file_protos_perfetto_metrics_android_process_metadata]);

/**
 * Android app startup metrics.
 *
 * @generated from message perfetto.protos.AndroidStartupMetric
 */
export type AndroidStartupMetric = Message<"perfetto.protos.AndroidStartupMetric"> & {
  /**
   * @generated from field: repeated perfetto.protos.AndroidStartupMetric.Startup startup = 1;
   */
  startup: AndroidStartupMetric_Startup[];
};

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

/**
 * A simplified view of the task state durations for a thread
 * and a span of time.
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.TaskStateBreakdown
 */
export type AndroidStartupMetric_TaskStateBreakdown = Message<"perfetto.protos.AndroidStartupMetric.TaskStateBreakdown"> & {
  /**
   * @generated from field: optional int64 running_dur_ns = 1;
   */
  runningDurNs: bigint;

  /**
   * @generated from field: optional int64 runnable_dur_ns = 2;
   */
  runnableDurNs: bigint;

  /**
   * @generated from field: optional int64 uninterruptible_sleep_dur_ns = 3;
   */
  uninterruptibleSleepDurNs: bigint;

  /**
   * @generated from field: optional int64 interruptible_sleep_dur_ns = 4;
   */
  interruptibleSleepDurNs: bigint;

  /**
   * @generated from field: optional int64 uninterruptible_io_sleep_dur_ns = 5;
   */
  uninterruptibleIoSleepDurNs: bigint;

  /**
   * @generated from field: optional int64 uninterruptible_non_io_sleep_dur_ns = 6;
   */
  uninterruptibleNonIoSleepDurNs: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.TaskStateBreakdown.
 * Use `create(AndroidStartupMetric_TaskStateBreakdownSchema)` to create a new message.
 */
export const AndroidStartupMetric_TaskStateBreakdownSchema: GenMessage<AndroidStartupMetric_TaskStateBreakdown> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 0);

/**
 * @generated from message perfetto.protos.AndroidStartupMetric.McyclesByCoreType
 */
export type AndroidStartupMetric_McyclesByCoreType = Message<"perfetto.protos.AndroidStartupMetric.McyclesByCoreType"> & {
  /**
   * @generated from field: optional int64 little = 1;
   */
  little: bigint;

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

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

  /**
   * @generated from field: optional int64 unknown = 4;
   */
  unknown: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.McyclesByCoreType.
 * Use `create(AndroidStartupMetric_McyclesByCoreTypeSchema)` to create a new message.
 */
export const AndroidStartupMetric_McyclesByCoreTypeSchema: GenMessage<AndroidStartupMetric_McyclesByCoreType> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 1);

/**
 * @generated from message perfetto.protos.AndroidStartupMetric.Slice
 */
export type AndroidStartupMetric_Slice = Message<"perfetto.protos.AndroidStartupMetric.Slice"> & {
  /**
   * @generated from field: optional int64 dur_ns = 1;
   */
  durNs: bigint;

  /**
   * @generated from field: optional double dur_ms = 2;
   */
  durMs: number;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.Slice.
 * Use `create(AndroidStartupMetric_SliceSchema)` to create a new message.
 */
export const AndroidStartupMetric_SliceSchema: GenMessage<AndroidStartupMetric_Slice> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 2);

/**
 * Timing information spanning the intent received by the
 * activity manager to the first frame drawn.
 * Next id: 38
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.ToFirstFrame
 */
export type AndroidStartupMetric_ToFirstFrame = Message<"perfetto.protos.AndroidStartupMetric.ToFirstFrame"> & {
  /**
   * The duration between the intent received and first frame.
   *
   * @generated from field: optional int64 dur_ns = 1;
   */
  durNs: bigint;

  /**
   * @generated from field: optional double dur_ms = 17;
   */
  durMs: number;

  /**
   * Breakdown of time to first frame by task state for the main thread of
   * the process starting up.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.TaskStateBreakdown main_thread_by_task_state = 2;
   */
  mainThreadByTaskState?: AndroidStartupMetric_TaskStateBreakdown;

  /**
   * The mcycles taken by this startup across all CPUs (broken down by core
   * type).
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.McyclesByCoreType mcycles_by_core_type = 26;
   */
  mcyclesByCoreType?: AndroidStartupMetric_McyclesByCoreType;

  /**
   * In this timespan, how many processes (apart from the main activity) were
   * spawned.
   *
   * @generated from field: optional uint32 other_processes_spawned_count = 3;
   */
  otherProcessesSpawnedCount: number;

  /**
   * Total time spent in activity manager between the initial intent
   * and the end of the activity starter.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_activity_manager = 4;
   */
  timeActivityManager?: AndroidStartupMetric_Slice;

  /**
   * The following slices follow the typical steps post-fork.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_activity_thread_main = 5;
   */
  timeActivityThreadMain?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_bind_application = 6;
   */
  timeBindApplication?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_activity_start = 7;
   */
  timeActivityStart?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_activity_resume = 8;
   */
  timeActivityResume?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_activity_restart = 21;
   */
  timeActivityRestart?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_choreographer = 9;
   */
  timeChoreographer?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_inflate = 22;
   */
  timeInflate?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_get_resources = 23;
   */
  timeGetResources?: AndroidStartupMetric_Slice;

  /**
   * If we are starting a new process, record the duration from the
   * intent being received to the time we call the zygote.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_before_start_process = 10;
   */
  timeBeforeStartProcess?: AndroidStartupMetric_Slice;

  /**
   * The actual duration of the process start (based on the zygote slice).
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_during_start_process = 11;
   */
  timeDuringStartProcess?: AndroidStartupMetric_Slice;

  /**
   * The duration from launch to first running state thread of startup
   * process.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_to_running_state = 35;
   */
  timeToRunningState?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice to_post_fork = 18;
   */
  toPostFork?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice to_activity_thread_main = 19;
   */
  toActivityThreadMain?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice to_bind_application = 20;
   */
  toBindApplication?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_post_fork = 16;
   */
  timePostFork?: AndroidStartupMetric_Slice;

  /**
   * Total time on class initialization during app startup.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_class_initialization = 36;
   */
  timeClassInitialization?: AndroidStartupMetric_Slice;

  /**
   * The total time spent on opening dex files.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_dex_open = 24;
   */
  timeDexOpen?: AndroidStartupMetric_Slice;

  /**
   * Total time spent verifying classes during app startup.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_verify_class = 25;
   */
  timeVerifyClass?: AndroidStartupMetric_Slice;

  /**
   * Number of methods that were compiled by JIT during app startup.
   *
   * @generated from field: optional uint32 jit_compiled_methods = 27;
   */
  jitCompiledMethods: number;

  /**
   * Number of class initializations during app startup.
   *
   * @generated from field: optional uint32 class_initialization_count = 37;
   */
  classInitializationCount: number;

  /**
   * Time spent running CPU on jit thread pool.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_jit_thread_pool_on_cpu = 28;
   */
  timeJitThreadPoolOnCpu?: AndroidStartupMetric_Slice;

  /**
   * Time spent on garbage collection.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_gc_total = 29;
   */
  timeGcTotal?: AndroidStartupMetric_Slice;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_gc_on_cpu = 30;
   */
  timeGcOnCpu?: AndroidStartupMetric_Slice;

  /**
   * Time spent in lock contention on the main thread of the process being
   * started up. This includes *all* types of lock contention not just monitor
   * contention.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_lock_contention_thread_main = 31;
   */
  timeLockContentionThreadMain?: AndroidStartupMetric_Slice;

  /**
   * Time spent in monitor lock contention on the main thread of the
   * process being started up. This will be a subset of the time counted by
   * |time_lock_contention_thread_main|.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_monitor_contention_thread_main = 32;
   */
  timeMonitorContentionThreadMain?: AndroidStartupMetric_Slice;

  /**
   * Time spent in opening dex files on the main thread of the process
   * being started up.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_dex_open_thread_main = 33;
   */
  timeDexOpenThreadMain?: AndroidStartupMetric_Slice;

  /**
   * Time spent in dlopening .so files on the main thread of the process
   * being started up.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice time_dlopen_thread_main = 34;
   */
  timeDlopenThreadMain?: AndroidStartupMetric_Slice;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.ToFirstFrame.
 * Use `create(AndroidStartupMetric_ToFirstFrameSchema)` to create a new message.
 */
export const AndroidStartupMetric_ToFirstFrameSchema: GenMessage<AndroidStartupMetric_ToFirstFrame> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 3);

/**
 * Metrics about startup which were developed by looking at experiments using
 * high-speed cameras (HSC).
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.HscMetrics
 */
export type AndroidStartupMetric_HscMetrics = Message<"perfetto.protos.AndroidStartupMetric.HscMetrics"> & {
  /**
   * The duration of the full "startup" as defined by HSC tests.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice full_startup = 1;
   */
  fullStartup?: AndroidStartupMetric_Slice;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.HscMetrics.
 * Use `create(AndroidStartupMetric_HscMetricsSchema)` to create a new message.
 */
export const AndroidStartupMetric_HscMetricsSchema: GenMessage<AndroidStartupMetric_HscMetrics> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 4);

/**
 * @generated from message perfetto.protos.AndroidStartupMetric.Activity
 */
export type AndroidStartupMetric_Activity = Message<"perfetto.protos.AndroidStartupMetric.Activity"> & {
  /**
   * @generated from field: optional string name = 1;
   */
  name: string;

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

  /**
   * @generated from field: optional int64 ts_method_start = 4;
   */
  tsMethodStart: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.Activity.
 * Use `create(AndroidStartupMetric_ActivitySchema)` to create a new message.
 */
export const AndroidStartupMetric_ActivitySchema: GenMessage<AndroidStartupMetric_Activity> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 5);

/**
 * @generated from message perfetto.protos.AndroidStartupMetric.BinderTransaction
 */
export type AndroidStartupMetric_BinderTransaction = Message<"perfetto.protos.AndroidStartupMetric.BinderTransaction"> & {
  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice duration = 1;
   */
  duration?: AndroidStartupMetric_Slice;

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

  /**
   * @generated from field: optional string destination_thread = 3;
   */
  destinationThread: string;

  /**
   * @generated from field: optional string destination_process = 4;
   */
  destinationProcess: string;

  /**
   * From
   * https://cs.android.com/android/platform/superproject/main/+/main:external/perfetto/protos/perfetto/trace/ftrace/binder.proto;l=15;drc=7b6a788162a30802f4c9d8d7a30a54e25edd30f1
   *
   * @generated from field: optional string flags = 5;
   */
  flags: string;

  /**
   * From
   * https://cs.android.com/android/platform/superproject/main/+/main:external/perfetto/protos/perfetto/trace/ftrace/binder.proto;l=14;drc=7b6a788162a30802f4c9d8d7a30a54e25edd30f1
   *
   * @generated from field: optional string code = 6;
   */
  code: string;

  /**
   * From
   * https://cs.android.com/android/platform/superproject/main/+/main:external/perfetto/protos/perfetto/trace/ftrace/binder.proto;l=37;drc=7b6a788162a30802f4c9d8d7a30a54e25edd30f1
   *
   * @generated from field: optional int64 data_size = 7;
   */
  dataSize: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.BinderTransaction.
 * Use `create(AndroidStartupMetric_BinderTransactionSchema)` to create a new message.
 */
export const AndroidStartupMetric_BinderTransactionSchema: GenMessage<AndroidStartupMetric_BinderTransaction> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 6);

/**
 * Metrics with information about the status of odex files and the outcome
 * of the loading process.
 * Multiple files might be loaded for a single startup. Platform might also
 * decide to discard an odex file and instead load a fallback, for example
 * in case the OS or apk were updated.
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.OptimizationStatus
 */
export type AndroidStartupMetric_OptimizationStatus = Message<"perfetto.protos.AndroidStartupMetric.OptimizationStatus"> & {
  /**
   * @generated from field: optional string odex_status = 1;
   */
  odexStatus: string;

  /**
   * @generated from field: optional string compilation_filter = 2;
   */
  compilationFilter: string;

  /**
   * @generated from field: optional string compilation_reason = 3;
   */
  compilationReason: string;

  /**
   * @generated from field: optional string location = 4;
   */
  location: string;

  /**
   * @generated from field: optional string summary = 5;
   */
  summary: string;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.OptimizationStatus.
 * Use `create(AndroidStartupMetric_OptimizationStatusSchema)` to create a new message.
 */
export const AndroidStartupMetric_OptimizationStatusSchema: GenMessage<AndroidStartupMetric_OptimizationStatus> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 7);

/**
 * Contains the name and duration of class verification occurred during
 * the startup.
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.VerifyClass
 */
export type AndroidStartupMetric_VerifyClass = Message<"perfetto.protos.AndroidStartupMetric.VerifyClass"> & {
  /**
   * @generated from field: optional string name = 1;
   */
  name: string;

  /**
   * @generated from field: optional int64 dur_ns = 2;
   */
  durNs: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.VerifyClass.
 * Use `create(AndroidStartupMetric_VerifyClassSchema)` to create a new message.
 */
export const AndroidStartupMetric_VerifyClassSchema: GenMessage<AndroidStartupMetric_VerifyClass> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 8);

/**
 * Contains timestamps of important events which occurred during the
 * startup.
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.EventTimestamps
 */
export type AndroidStartupMetric_EventTimestamps = Message<"perfetto.protos.AndroidStartupMetric.EventTimestamps"> & {
  /**
   * @generated from field: optional int64 intent_received = 1;
   */
  intentReceived: bigint;

  /**
   * @generated from field: optional int64 first_frame = 2;
   */
  firstFrame: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.EventTimestamps.
 * Use `create(AndroidStartupMetric_EventTimestampsSchema)` to create a new message.
 */
export const AndroidStartupMetric_EventTimestampsSchema: GenMessage<AndroidStartupMetric_EventTimestamps> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 9);

/**
 * Contains information about the state of a system during the app startup.
 * Useful to put the startup in context.
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.SystemState
 */
export type AndroidStartupMetric_SystemState = Message<"perfetto.protos.AndroidStartupMetric.SystemState"> & {
  /**
   * Whether the dex2oat64 process was running concurrent to the startup.
   * Deprecated as of 10/2022.
   *
   * @generated from field: optional bool dex2oat_running = 1 [deprecated = true];
   * @deprecated
   */
  dex2oatRunning: boolean;

  /**
   * Whether the installd process was running concurrent to the startup.
   * Deprecated as of 10/2022.
   *
   * @generated from field: optional bool installd_running = 2 [deprecated = true];
   * @deprecated
   */
  installdRunning: boolean;

  /**
   * The number of broadcasts dispatched by the system during the app
   * launch.
   *
   * @generated from field: optional int64 broadcast_dispatched_count = 3;
   */
  broadcastDispatchedCount: bigint;

  /**
   * The number of broadcasts received by an app or the system during the
   * app launch. Note that multiple packages can be subscribed to the same
   * broadcast so a single dsipatch can cause multiple packages to receive
   * and process a broadcast.
   *
   * @generated from field: optional int64 broadcast_received_count = 4;
   */
  broadcastReceivedCount: bigint;

  /**
   * The most active (i.e. consuming the most mcycles) processes during the
   * app launch excluding the process(es) being launched.
   * Note: the exact number of returned is an implementation detail and
   * will likely change over time.
   *
   * @generated from field: repeated string most_active_non_launch_processes = 5;
   */
  mostActiveNonLaunchProcesses: string[];

  /**
   * Duration the installd process was running concurrent to the startup.
   *
   * @generated from field: optional int64 installd_dur_ns = 6;
   */
  installdDurNs: bigint;

  /**
   * Duration the dex2oat64 process was running concurrent to the startup.
   *
   * @generated from field: optional int64 dex2oat_dur_ns = 7;
   */
  dex2oatDurNs: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.SystemState.
 * Use `create(AndroidStartupMetric_SystemStateSchema)` to create a new message.
 */
export const AndroidStartupMetric_SystemStateSchema: GenMessage<AndroidStartupMetric_SystemState> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 10);

/**
 * Contains detailed information for slow startup causes.
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.SlowStartReasonDetailed
 */
export type AndroidStartupMetric_SlowStartReasonDetailed = Message<"perfetto.protos.AndroidStartupMetric.SlowStartReasonDetailed"> & {
  /**
   * @generated from field: optional string reason = 1;
   */
  reason: string;

  /**
   * @generated from field: optional string details = 2;
   */
  details: string;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.SlowStartReasonDetailed.
 * Use `create(AndroidStartupMetric_SlowStartReasonDetailedSchema)` to create a new message.
 */
export const AndroidStartupMetric_SlowStartReasonDetailedSchema: GenMessage<AndroidStartupMetric_SlowStartReasonDetailed> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 11);

/**
 * Contains information for slow startup causes.
 * Next id: 11.
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.SlowStartReason
 */
export type AndroidStartupMetric_SlowStartReason = Message<"perfetto.protos.AndroidStartupMetric.SlowStartReason"> & {
  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.SlowStartReason.ReasonId reason_id = 1;
   */
  reasonId: AndroidStartupMetric_SlowStartReason_ReasonId;

  /**
   * Brief description for human readability.
   *
   * @generated from field: optional string reason = 2;
   */
  reason: string;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.SlowStartReason.SeverityLevel severity = 10;
   */
  severity: AndroidStartupMetric_SlowStartReason_SeverityLevel;

  /**
   * Expected value (inherited from threshold definition).
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.ThresholdValue expected_value = 3;
   */
  expectedValue?: AndroidStartupMetric_ThresholdValue;

  /**
   * Actual value, can be used to decide severity level.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.ActualValue actual_value = 4;
   */
  actualValue?: AndroidStartupMetric_ActualValue;

  /**
   * Launch duration
   *
   * @generated from field: optional int64 launch_dur = 5;
   */
  launchDur: bigint;

  /**
   * Sum of durations of slices and thread states in trace_slices_or_threads.
   * Can be used to decide if a couple of top slices or threads caused the
   * issue.
   *
   * @generated from field: optional int64 duration = 6;
   */
  duration: bigint;

  /**
   * Information of a subset of slice and thread sections to focused on,
   * sorted by the duration in descending order.
   * By checking out the top slices/threads, developers can identify specific
   * slices or threads for further investigation.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.TraceSliceSectionInfo trace_slice_sections = 7;
   */
  traceSliceSections?: AndroidStartupMetric_TraceSliceSectionInfo;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.TraceThreadSectionInfo trace_thread_sections = 8;
   */
  traceThreadSections?: AndroidStartupMetric_TraceThreadSectionInfo;

  /**
   * Details specific for a reason.
   *
   * @generated from field: optional string additional_info = 9;
   */
  additionalInfo: string;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.SlowStartReason.
 * Use `create(AndroidStartupMetric_SlowStartReasonSchema)` to create a new message.
 */
export const AndroidStartupMetric_SlowStartReasonSchema: GenMessage<AndroidStartupMetric_SlowStartReason> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 12);

/**
 * Points to reason description and solution.
 *
 * @generated from enum perfetto.protos.AndroidStartupMetric.SlowStartReason.ReasonId
 */
export enum AndroidStartupMetric_SlowStartReason_ReasonId {
  /**
   * @generated from enum value: REASON_ID_UNSPECIFIED = 0;
   */
  REASON_ID_UNSPECIFIED = 0,

  /**
   * @generated from enum value: NO_BASELINE_OR_CLOUD_PROFILES = 1;
   */
  NO_BASELINE_OR_CLOUD_PROFILES = 1,

  /**
   * @generated from enum value: RUN_FROM_APK = 2;
   */
  RUN_FROM_APK = 2,

  /**
   * @generated from enum value: UNLOCK_RUNNING = 3;
   */
  UNLOCK_RUNNING = 3,

  /**
   * @generated from enum value: APP_IN_DEBUGGABLE_MODE = 4;
   */
  APP_IN_DEBUGGABLE_MODE = 4,

  /**
   * @generated from enum value: GC_ACTIVITY = 5;
   */
  GC_ACTIVITY = 5,

  /**
   * @generated from enum value: DEX2OAT_RUNNING = 6;
   */
  DEX2OAT_RUNNING = 6,

  /**
   * @generated from enum value: INSTALLD_RUNNING = 7;
   */
  INSTALLD_RUNNING = 7,

  /**
   * @generated from enum value: MAIN_THREAD_TIME_SPENT_IN_RUNNABLE = 8;
   */
  MAIN_THREAD_TIME_SPENT_IN_RUNNABLE = 8,

  /**
   * @generated from enum value: MAIN_THREAD_TIME_SPENT_IN_INTERRUPTIBLE_SLEEP = 9;
   */
  MAIN_THREAD_TIME_SPENT_IN_INTERRUPTIBLE_SLEEP = 9,

  /**
   * @generated from enum value: MAIN_THREAD_TIME_SPENT_IN_BLOCKING_IO = 10;
   */
  MAIN_THREAD_TIME_SPENT_IN_BLOCKING_IO = 10,

  /**
   * @generated from enum value: MAIN_THREAD_TIME_SPENT_IN_OPEN_DEX_FILES_FROM_OAT = 11;
   */
  MAIN_THREAD_TIME_SPENT_IN_OPEN_DEX_FILES_FROM_OAT = 11,

  /**
   * @generated from enum value: TIME_SPENT_IN_BIND_APPLICATION = 12;
   */
  TIME_SPENT_IN_BIND_APPLICATION = 12,

  /**
   * @generated from enum value: TIME_SPENT_IN_VIEW_INFLATION = 13;
   */
  TIME_SPENT_IN_VIEW_INFLATION = 13,

  /**
   * @generated from enum value: TIME_SPENT_IN_RESOURCES_MANAGER_GET_RESOURCES = 14;
   */
  TIME_SPENT_IN_RESOURCES_MANAGER_GET_RESOURCES = 14,

  /**
   * @generated from enum value: TIME_SPENT_VERIFYING_CLASSES = 15;
   */
  TIME_SPENT_VERIFYING_CLASSES = 15,

  /**
   * @generated from enum value: POTENTIAL_CPU_CONTENTION_WITH_ANOTHER_PROCESS = 16;
   */
  POTENTIAL_CPU_CONTENTION_WITH_ANOTHER_PROCESS = 16,

  /**
   * @generated from enum value: JIT_ACTIVITY = 17;
   */
  JIT_ACTIVITY = 17,

  /**
   * @generated from enum value: MAIN_THREAD_LOCK_CONTENTION = 18;
   */
  MAIN_THREAD_LOCK_CONTENTION = 18,

  /**
   * @generated from enum value: MAIN_THREAD_MONITOR_CONTENTION = 19;
   */
  MAIN_THREAD_MONITOR_CONTENTION = 19,

  /**
   * @generated from enum value: JIT_COMPILED_METHODS = 20;
   */
  JIT_COMPILED_METHODS = 20,

  /**
   * @generated from enum value: BROADCAST_DISPATCHED_COUNT = 21;
   */
  BROADCAST_DISPATCHED_COUNT = 21,

  /**
   * @generated from enum value: BROADCAST_RECEIVED_COUNT = 22;
   */
  BROADCAST_RECEIVED_COUNT = 22,

  /**
   * @generated from enum value: STARTUP_RUNNING_CONCURRENT = 23;
   */
  STARTUP_RUNNING_CONCURRENT = 23,

  /**
   * @generated from enum value: MAIN_THREAD_BINDER_TRANSCATIONS_BLOCKED = 24;
   */
  MAIN_THREAD_BINDER_TRANSCATIONS_BLOCKED = 24,
}

/**
 * Describes the enum perfetto.protos.AndroidStartupMetric.SlowStartReason.ReasonId.
 */
export const AndroidStartupMetric_SlowStartReason_ReasonIdSchema: GenEnum<AndroidStartupMetric_SlowStartReason_ReasonId> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 12, 0);

/**
 * Severity level for a reason.
 *
 * @generated from enum perfetto.protos.AndroidStartupMetric.SlowStartReason.SeverityLevel
 */
export enum AndroidStartupMetric_SlowStartReason_SeverityLevel {
  /**
   * @generated from enum value: SEVERITY_UNSPECIFIED = 0;
   */
  SEVERITY_UNSPECIFIED = 0,

  /**
   * @generated from enum value: ERROR = 1;
   */
  ERROR = 1,

  /**
   * @generated from enum value: WARNING = 2;
   */
  WARNING = 2,

  /**
   * @generated from enum value: INFO = 3;
   */
  INFO = 3,
}

/**
 * Describes the enum perfetto.protos.AndroidStartupMetric.SlowStartReason.SeverityLevel.
 */
export const AndroidStartupMetric_SlowStartReason_SeverityLevelSchema: GenEnum<AndroidStartupMetric_SlowStartReason_SeverityLevel> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 12, 1);

/**
 * @generated from message perfetto.protos.AndroidStartupMetric.ThresholdValue
 */
export type AndroidStartupMetric_ThresholdValue = Message<"perfetto.protos.AndroidStartupMetric.ThresholdValue"> & {
  /**
   * Expected value. 1 for true and 0 for false for booleans.
   *
   * @generated from field: optional int64 value = 1;
   */
  value: bigint;

  /**
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.ThresholdValue.ThresholdUnit unit = 2;
   */
  unit: AndroidStartupMetric_ThresholdValue_ThresholdUnit;

  /**
   * For numeric threshold values only. When higher_expected is true,
   * an app startup is considered performant if actual value is higher
   * than the threshold.
   *
   * @generated from field: optional bool higher_expected = 3;
   */
  higherExpected: boolean;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.ThresholdValue.
 * Use `create(AndroidStartupMetric_ThresholdValueSchema)` to create a new message.
 */
export const AndroidStartupMetric_ThresholdValueSchema: GenMessage<AndroidStartupMetric_ThresholdValue> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 13);

/**
 * Expected value unit. Enum, e.g. "ns", "%"
 *
 * @generated from enum perfetto.protos.AndroidStartupMetric.ThresholdValue.ThresholdUnit
 */
export enum AndroidStartupMetric_ThresholdValue_ThresholdUnit {
  /**
   * @generated from enum value: THRESHOLD_UNIT_UNSPECIFIED = 0;
   */
  THRESHOLD_UNIT_UNSPECIFIED = 0,

  /**
   * @generated from enum value: NS = 1;
   */
  NS = 1,

  /**
   * @generated from enum value: PERCENTAGE = 2;
   */
  PERCENTAGE = 2,

  /**
   * @generated from enum value: TRUE_OR_FALSE = 3;
   */
  TRUE_OR_FALSE = 3,

  /**
   * @generated from enum value: COUNT = 4;
   */
  COUNT = 4,
}

/**
 * Describes the enum perfetto.protos.AndroidStartupMetric.ThresholdValue.ThresholdUnit.
 */
export const AndroidStartupMetric_ThresholdValue_ThresholdUnitSchema: GenEnum<AndroidStartupMetric_ThresholdValue_ThresholdUnit> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 13, 0);

/**
 * @generated from message perfetto.protos.AndroidStartupMetric.ActualValue
 */
export type AndroidStartupMetric_ActualValue = Message<"perfetto.protos.AndroidStartupMetric.ActualValue"> & {
  /**
   * Actual value. 1 for true and 0 for false for booleans.
   *
   * @generated from field: optional int64 value = 1;
   */
  value: bigint;

  /**
   * Actual duration for percentage thresholds only.
   * E.g. if the threashold is 20% and the launch_duration is 1000ms,
   * then the actual duration is more than 200ms.
   *
   * @generated from field: optional int64 dur = 2;
   */
  dur: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.ActualValue.
 * Use `create(AndroidStartupMetric_ActualValueSchema)` to create a new message.
 */
export const AndroidStartupMetric_ActualValueSchema: GenMessage<AndroidStartupMetric_ActualValue> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 14);

/**
 * Contains information for a section of a slice.
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.TraceSliceSection
 */
export type AndroidStartupMetric_TraceSliceSection = Message<"perfetto.protos.AndroidStartupMetric.TraceSliceSection"> & {
  /**
   * @generated from field: optional int64 start_timestamp = 1;
   */
  startTimestamp: bigint;

  /**
   * @generated from field: optional int64 end_timestamp = 2;
   */
  endTimestamp: bigint;

  /**
   * @generated from field: optional uint32 slice_id = 3;
   */
  sliceId: number;

  /**
   * @generated from field: optional string slice_name = 4;
   */
  sliceName: string;

  /**
   * @generated from field: optional uint32 process_pid = 5;
   */
  processPid: number;

  /**
   * @generated from field: optional uint32 thread_tid = 6;
   */
  threadTid: number;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.TraceSliceSection.
 * Use `create(AndroidStartupMetric_TraceSliceSectionSchema)` to create a new message.
 */
export const AndroidStartupMetric_TraceSliceSectionSchema: GenMessage<AndroidStartupMetric_TraceSliceSection> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 15);

/**
 * Information for the SliceSections
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.TraceSliceSectionInfo
 */
export type AndroidStartupMetric_TraceSliceSectionInfo = Message<"perfetto.protos.AndroidStartupMetric.TraceSliceSectionInfo"> & {
  /**
   * @generated from field: repeated perfetto.protos.AndroidStartupMetric.TraceSliceSection slice_section = 1;
   */
  sliceSection: AndroidStartupMetric_TraceSliceSection[];

  /**
   * @generated from field: optional int64 start_timestamp = 2;
   */
  startTimestamp: bigint;

  /**
   * @generated from field: optional int64 end_timestamp = 3;
   */
  endTimestamp: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.TraceSliceSectionInfo.
 * Use `create(AndroidStartupMetric_TraceSliceSectionInfoSchema)` to create a new message.
 */
export const AndroidStartupMetric_TraceSliceSectionInfoSchema: GenMessage<AndroidStartupMetric_TraceSliceSectionInfo> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 16);

/**
 * Contains information for a section of a thread.
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.TraceThreadSection
 */
export type AndroidStartupMetric_TraceThreadSection = Message<"perfetto.protos.AndroidStartupMetric.TraceThreadSection"> & {
  /**
   * @generated from field: optional int64 start_timestamp = 1;
   */
  startTimestamp: bigint;

  /**
   * @generated from field: optional int64 end_timestamp = 2;
   */
  endTimestamp: bigint;

  /**
   * Deprecated as of 09/2024
   *
   * @generated from field: optional uint32 thread_utid = 3;
   */
  threadUtid: number;

  /**
   * @generated from field: optional string thread_name = 4;
   */
  threadName: string;

  /**
   * @generated from field: optional uint32 process_pid = 5;
   */
  processPid: number;

  /**
   * @generated from field: optional uint32 thread_tid = 6;
   */
  threadTid: number;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.TraceThreadSection.
 * Use `create(AndroidStartupMetric_TraceThreadSectionSchema)` to create a new message.
 */
export const AndroidStartupMetric_TraceThreadSectionSchema: GenMessage<AndroidStartupMetric_TraceThreadSection> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 17);

/**
 * Information for the ThreadSections
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.TraceThreadSectionInfo
 */
export type AndroidStartupMetric_TraceThreadSectionInfo = Message<"perfetto.protos.AndroidStartupMetric.TraceThreadSectionInfo"> & {
  /**
   * @generated from field: repeated perfetto.protos.AndroidStartupMetric.TraceThreadSection thread_section = 1;
   */
  threadSection: AndroidStartupMetric_TraceThreadSection[];

  /**
   * @generated from field: optional int64 start_timestamp = 2;
   */
  startTimestamp: bigint;

  /**
   * @generated from field: optional int64 end_timestamp = 3;
   */
  endTimestamp: bigint;
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.TraceThreadSectionInfo.
 * Use `create(AndroidStartupMetric_TraceThreadSectionInfoSchema)` to create a new message.
 */
export const AndroidStartupMetric_TraceThreadSectionInfoSchema: GenMessage<AndroidStartupMetric_TraceThreadSectionInfo> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 18);

/**
 * Next id: 26
 *
 * @generated from message perfetto.protos.AndroidStartupMetric.Startup
 */
export type AndroidStartupMetric_Startup = Message<"perfetto.protos.AndroidStartupMetric.Startup"> & {
  /**
   * Random id uniquely identifying an app startup in this trace.
   *
   * @generated from field: optional uint32 startup_id = 1;
   */
  startupId: number;

  /**
   * Startup type (cold / warm / hot)
   *
   * @generated from field: optional string startup_type = 16;
   */
  startupType: string;

  /**
   * Number of CPUs the device has
   *
   * @generated from field: optional uint32 cpu_count = 25;
   */
  cpuCount: number;

  /**
   * Name of the package launched
   *
   * @generated from field: optional string package_name = 2;
   */
  packageName: string;

  /**
   * Name of the process launched
   *
   * @generated from field: optional string process_name = 3;
   */
  processName: string;

  /**
   * Details about the activities launched
   *
   * @generated from field: repeated perfetto.protos.AndroidStartupMetric.Activity activities = 11;
   */
  activities: AndroidStartupMetric_Activity[];

  /**
   * Details about slow binder transactions during the startup. The definition
   * of a slow transaction is an implementation detail.
   *
   * @generated from field: repeated perfetto.protos.AndroidStartupMetric.BinderTransaction long_binder_transactions = 14;
   */
  longBinderTransactions: AndroidStartupMetric_BinderTransaction[];

  /**
   * Did we ask the zygote for a new process
   *
   * @generated from field: optional bool zygote_new_process = 4;
   */
  zygoteNewProcess: boolean;

  /**
   * Number of processes hosting the activity involved in the launch.
   * This will usually be 1. If it is 0, it is indicative of a data / process
   * error. If > 1, the process died during startup and the system respawned
   * it.
   *
   * @generated from field: optional uint32 activity_hosting_process_count = 6;
   */
  activityHostingProcessCount: number;

  /**
   * Time it takes to display the first frame of the app`s UI.
   * Details:
   * https://developer.android.com/topic/performance/vitals/launch-time#time-initial
   *
   * @generated from field: optional int64 time_to_initial_display = 22;
   */
  timeToInitialDisplay: bigint;

  /**
   * Time to full display (TTFD) is the time ittakes for an app to become
   * interactive for the user.
   * Datails:
   * https://developer.android.com/topic/performance/vitals/launch-time#time-full
   *
   * @generated from field: optional int64 time_to_full_display = 23;
   */
  timeToFullDisplay: bigint;

  /**
   * Contains timestamps of important events which happened during
   * the startup.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.EventTimestamps event_timestamps = 13;
   */
  eventTimestamps?: AndroidStartupMetric_EventTimestamps;

  /**
   * Timing information spanning the intent received by the
   * activity manager to the first frame drawn.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.ToFirstFrame to_first_frame = 5;
   */
  toFirstFrame?: AndroidStartupMetric_ToFirstFrame;

  /**
   * Details about the process (uid, version, etc)
   *
   * @generated from field: optional perfetto.protos.AndroidProcessMetadata process = 7;
   */
  process?: AndroidProcessMetadata;

  /**
   * Metrics about startup which were developed by looking at experiments
   * using high-speed cameras (HSC).
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.HscMetrics hsc = 8;
   */
  hsc?: AndroidStartupMetric_HscMetrics;

  /**
   * The time taken in the startup from intent received to the start time
   * of the reportFullyDrawn slice. This should be longer than the time to
   * first frame as the application decides this after it starts rendering.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.Slice report_fully_drawn = 9;
   */
  reportFullyDrawn?: AndroidStartupMetric_Slice;

  /**
   * Contains information about the status of odex files.
   *
   * @generated from field: repeated perfetto.protos.AndroidStartupMetric.OptimizationStatus optimization_status = 12;
   */
  optimizationStatus: AndroidStartupMetric_OptimizationStatus[];

  /**
   * Contains information about the class verification.
   *
   * @generated from field: repeated perfetto.protos.AndroidStartupMetric.VerifyClass verify_class = 19;
   */
  verifyClass: AndroidStartupMetric_VerifyClass[];

  /**
   * Contains the dlopen file names.
   *
   * @generated from field: repeated string dlopen_file = 20;
   */
  dlopenFile: string[];

  /**
   * Package name of startups running concurrent to the launch.
   *
   * @generated from field: repeated string startup_concurrent_to_launch = 18;
   */
  startupConcurrentToLaunch: string[];

  /**
   * Contains information about the state of the rest of the system during the
   * startup. This is useful for getting context about why a startup might
   * be slow beyond just what the app is doing.
   *
   * @generated from field: optional perfetto.protos.AndroidStartupMetric.SystemState system_state = 15;
   */
  systemState?: AndroidStartupMetric_SystemState;

  /**
   * A list of identified potential causes for slow startup.
   * Optional.
   *
   * @generated from field: repeated string slow_start_reason = 17;
   */
  slowStartReason: string[];

  /**
   * Same as slow_start_reason, but with more detailed information, obsolete.
   *
   * @generated from field: repeated perfetto.protos.AndroidStartupMetric.SlowStartReasonDetailed slow_start_reason_detailed = 21;
   */
  slowStartReasonDetailed: AndroidStartupMetric_SlowStartReasonDetailed[];

  /**
   * Similar to slow_start_reason_detailed, but with much more comprehensive
   * info. such as expected threshold, actual value and threads/slices to
   * inspect. slow_start_reason will be obsolete once
   * slow_start_reason_with_details is completed since
   * slow_start_reason_with_details contains all the data in slow_start_reason
   * and more.
   *
   * @generated from field: repeated perfetto.protos.AndroidStartupMetric.SlowStartReason slow_start_reason_with_details = 24;
   */
  slowStartReasonWithDetails: AndroidStartupMetric_SlowStartReason[];
};

/**
 * Describes the message perfetto.protos.AndroidStartupMetric.Startup.
 * Use `create(AndroidStartupMetric_StartupSchema)` to create a new message.
 */
export const AndroidStartupMetric_StartupSchema: GenMessage<AndroidStartupMetric_Startup> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_startup_metric, 0, 19);