//
// Copyright (C) 2018 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.

// This is a subset of descriptor.proto from the Protobuf library.

// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated from file protos/perfetto/common/descriptor.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 { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/common/descriptor.proto.
 */
export const file_protos_perfetto_common_descriptor: GenFile = /*@__PURE__*/
  fileDesc("Cidwcm90b3MvcGVyZmV0dG8vY29tbW9uL2Rlc2NyaXB0b3IucHJvdG8SD3BlcmZldHRvLnByb3RvcyJHChFGaWxlRGVzY3JpcHRvclNldBIyCgRmaWxlGAEgAygLMiQucGVyZmV0dG8ucHJvdG9zLkZpbGVEZXNjcmlwdG9yUHJvdG8ivwIKE0ZpbGVEZXNjcmlwdG9yUHJvdG8SDAoEbmFtZRgBIAEoCRIPCgdwYWNrYWdlGAIgASgJEhIKCmRlcGVuZGVuY3kYAyADKAkSGQoRcHVibGljX2RlcGVuZGVuY3kYCiADKAUSFwoPd2Vha19kZXBlbmRlbmN5GAsgAygFEjYKDG1lc3NhZ2VfdHlwZRgEIAMoCzIgLnBlcmZldHRvLnByb3Rvcy5EZXNjcmlwdG9yUHJvdG8SNwoJZW51bV90eXBlGAUgAygLMiQucGVyZmV0dG8ucHJvdG9zLkVudW1EZXNjcmlwdG9yUHJvdG8SOAoJZXh0ZW5zaW9uGAcgAygLMiUucGVyZmV0dG8ucHJvdG9zLkZpZWxkRGVzY3JpcHRvclByb3RvSgQIBhAHSgQICBAJSgQICRAKSgQIDBANItIDCg9EZXNjcmlwdG9yUHJvdG8SDAoEbmFtZRgBIAEoCRI0CgVmaWVsZBgCIAMoCzIlLnBlcmZldHRvLnByb3Rvcy5GaWVsZERlc2NyaXB0b3JQcm90bxI4CglleHRlbnNpb24YBiADKAsyJS5wZXJmZXR0by5wcm90b3MuRmllbGREZXNjcmlwdG9yUHJvdG8SNQoLbmVzdGVkX3R5cGUYAyADKAsyIC5wZXJmZXR0by5wcm90b3MuRGVzY3JpcHRvclByb3RvEjcKCWVudW1fdHlwZRgEIAMoCzIkLnBlcmZldHRvLnByb3Rvcy5FbnVtRGVzY3JpcHRvclByb3RvEjkKCm9uZW9mX2RlY2wYCCADKAsyJS5wZXJmZXR0by5wcm90b3MuT25lb2ZEZXNjcmlwdG9yUHJvdG8SRgoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5wZXJmZXR0by5wcm90b3MuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2USFQoNcmVzZXJ2ZWRfbmFtZRgKIAMoCRorCg1SZXNlcnZlZFJhbmdlEg0KBXN0YXJ0GAEgASgFEgsKA2VuZBgCIAEoBUoECAUQBkoECAcQCCKeAgoTVW5pbnRlcnByZXRlZE9wdGlvbhI7CgRuYW1lGAIgAygLMi0ucGVyZmV0dG8ucHJvdG9zLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnQSGAoQaWRlbnRpZmllcl92YWx1ZRgDIAEoCRIaChJwb3NpdGl2ZV9pbnRfdmFsdWUYBCABKAQSGgoSbmVnYXRpdmVfaW50X3ZhbHVlGAUgASgDEhQKDGRvdWJsZV92YWx1ZRgGIAEoARIUCgxzdHJpbmdfdmFsdWUYByABKAwSFwoPYWdncmVnYXRlX3ZhbHVlGAggASgJGjMKCE5hbWVQYXJ0EhEKCW5hbWVfcGFydBgBIAEoCRIUCgxpc19leHRlbnNpb24YAiABKAgiYwoMRmllbGRPcHRpb25zEg4KBnBhY2tlZBgCIAEoCBJDChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5wZXJmZXR0by5wcm90b3MuVW5pbnRlcnByZXRlZE9wdGlvbiKvBQoURmllbGREZXNjcmlwdG9yUHJvdG8SDAoEbmFtZRgBIAEoCRIOCgZudW1iZXIYAyABKAUSOgoFbGFiZWwYBCABKA4yKy5wZXJmZXR0by5wcm90b3MuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWwSOAoEdHlwZRgFIAEoDjIqLnBlcmZldHRvLnByb3Rvcy5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlEhEKCXR5cGVfbmFtZRgGIAEoCRIQCghleHRlbmRlZRgCIAEoCRIVCg1kZWZhdWx0X3ZhbHVlGAcgASgJEi4KB29wdGlvbnMYCCABKAsyHS5wZXJmZXR0by5wcm90b3MuRmllbGRPcHRpb25zEhMKC29uZW9mX2luZGV4GAkgASgFIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQA0oECAoQCyJUChRPbmVvZkRlc2NyaXB0b3JQcm90bxIMCgRuYW1lGAEgASgJEi4KB29wdGlvbnMYAiABKAsyHS5wZXJmZXR0by5wcm90b3MuT25lb2ZPcHRpb25zIoABChNFbnVtRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkSOAoFdmFsdWUYAiADKAsyKS5wZXJmZXR0by5wcm90b3MuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhUKDXJlc2VydmVkX25hbWUYBSADKAlKBAgDEARKBAgEEAUiPgoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkSDgoGbnVtYmVyGAIgASgFSgQIAxAEIiEKDE9uZW9mT3B0aW9ucyoJCOgHEICAgIACSgYI5wcQ6Ac");

/**
 * The protocol compiler can output a FileDescriptorSet containing the .proto
 * files it parses.
 *
 * @generated from message perfetto.protos.FileDescriptorSet
 */
export type FileDescriptorSet = Message<"perfetto.protos.FileDescriptorSet"> & {
  /**
   * @generated from field: repeated perfetto.protos.FileDescriptorProto file = 1;
   */
  file: FileDescriptorProto[];
};

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

/**
 * Describes a complete .proto file.
 *
 * @generated from message perfetto.protos.FileDescriptorProto
 */
export type FileDescriptorProto = Message<"perfetto.protos.FileDescriptorProto"> & {
  /**
   * file name, relative to root of source tree
   *
   * @generated from field: optional string name = 1;
   */
  name: string;

  /**
   * e.g. "foo", "foo.bar", etc.
   *
   * @generated from field: optional string package = 2;
   */
  package: string;

  /**
   * Names of files imported by this file.
   *
   * @generated from field: repeated string dependency = 3;
   */
  dependency: string[];

  /**
   * Indexes of the public imported files in the dependency list above.
   *
   * @generated from field: repeated int32 public_dependency = 10;
   */
  publicDependency: number[];

  /**
   * Indexes of the weak imported files in the dependency list.
   * For Google-internal migration only. Do not use.
   *
   * @generated from field: repeated int32 weak_dependency = 11;
   */
  weakDependency: number[];

  /**
   * All top-level definitions in this file.
   *
   * @generated from field: repeated perfetto.protos.DescriptorProto message_type = 4;
   */
  messageType: DescriptorProto[];

  /**
   * @generated from field: repeated perfetto.protos.EnumDescriptorProto enum_type = 5;
   */
  enumType: EnumDescriptorProto[];

  /**
   * @generated from field: repeated perfetto.protos.FieldDescriptorProto extension = 7;
   */
  extension: FieldDescriptorProto[];
};

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

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

  /**
   * @generated from field: repeated perfetto.protos.FieldDescriptorProto field = 2;
   */
  field: FieldDescriptorProto[];

  /**
   * @generated from field: repeated perfetto.protos.FieldDescriptorProto extension = 6;
   */
  extension: FieldDescriptorProto[];

  /**
   * @generated from field: repeated perfetto.protos.DescriptorProto nested_type = 3;
   */
  nestedType: DescriptorProto[];

  /**
   * @generated from field: repeated perfetto.protos.EnumDescriptorProto enum_type = 4;
   */
  enumType: EnumDescriptorProto[];

  /**
   * @generated from field: repeated perfetto.protos.OneofDescriptorProto oneof_decl = 8;
   */
  oneofDecl: OneofDescriptorProto[];

  /**
   * @generated from field: repeated perfetto.protos.DescriptorProto.ReservedRange reserved_range = 9;
   */
  reservedRange: DescriptorProto_ReservedRange[];

  /**
   * Reserved field names, which may not be used by fields in the same message.
   * A given name may only be reserved once.
   *
   * @generated from field: repeated string reserved_name = 10;
   */
  reservedName: string[];
};

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

/**
 * Range of reserved tag numbers. Reserved tag numbers may not be used by
 * fields or extension ranges in the same message. Reserved ranges may
 * not overlap.
 *
 * @generated from message perfetto.protos.DescriptorProto.ReservedRange
 */
export type DescriptorProto_ReservedRange = Message<"perfetto.protos.DescriptorProto.ReservedRange"> & {
  /**
   * Inclusive.
   *
   * @generated from field: optional int32 start = 1;
   */
  start: number;

  /**
   * Exclusive.
   *
   * @generated from field: optional int32 end = 2;
   */
  end: number;
};

/**
 * Describes the message perfetto.protos.DescriptorProto.ReservedRange.
 * Use `create(DescriptorProto_ReservedRangeSchema)` to create a new message.
 */
export const DescriptorProto_ReservedRangeSchema: GenMessage<DescriptorProto_ReservedRange> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_common_descriptor, 2, 0);

/**
 * A message representing a option the parser does not recognize. This only
 * appears in options protos created by the compiler::Parser class.
 * DescriptorPool resolves these when building Descriptor objects. Therefore,
 * options protos in descriptor objects (e.g. returned by Descriptor::options(),
 * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
 * in them.
 *
 * @generated from message perfetto.protos.UninterpretedOption
 */
export type UninterpretedOption = Message<"perfetto.protos.UninterpretedOption"> & {
  /**
   * @generated from field: repeated perfetto.protos.UninterpretedOption.NamePart name = 2;
   */
  name: UninterpretedOption_NamePart[];

  /**
   * The value of the uninterpreted option, in whatever type the tokenizer
   * identified it as during parsing. Exactly one of these should be set.
   *
   * @generated from field: optional string identifier_value = 3;
   */
  identifierValue: string;

  /**
   * @generated from field: optional uint64 positive_int_value = 4;
   */
  positiveIntValue: bigint;

  /**
   * @generated from field: optional int64 negative_int_value = 5;
   */
  negativeIntValue: bigint;

  /**
   * @generated from field: optional double double_value = 6;
   */
  doubleValue: number;

  /**
   * @generated from field: optional bytes string_value = 7;
   */
  stringValue: Uint8Array;

  /**
   * @generated from field: optional string aggregate_value = 8;
   */
  aggregateValue: string;
};

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

/**
 * The name of the uninterpreted option.  Each string represents a segment in
 * a dot-separated name.  is_extension is true iff a segment represents an
 * extension (denoted with parentheses in options specs in .proto files).
 * E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
 * "foo.(bar.baz).moo".
 *
 * @generated from message perfetto.protos.UninterpretedOption.NamePart
 */
export type UninterpretedOption_NamePart = Message<"perfetto.protos.UninterpretedOption.NamePart"> & {
  /**
   * @generated from field: optional string name_part = 1;
   */
  namePart: string;

  /**
   * @generated from field: optional bool is_extension = 2;
   */
  isExtension: boolean;
};

/**
 * Describes the message perfetto.protos.UninterpretedOption.NamePart.
 * Use `create(UninterpretedOption_NamePartSchema)` to create a new message.
 */
export const UninterpretedOption_NamePartSchema: GenMessage<UninterpretedOption_NamePart> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_common_descriptor, 3, 0);

/**
 * @generated from message perfetto.protos.FieldOptions
 */
export type FieldOptions = Message<"perfetto.protos.FieldOptions"> & {
  /**
   * The packed option can be enabled for repeated primitive fields to enable
   * a more efficient representation on the wire. Rather than repeatedly
   * writing the tag and type for each element, the entire array is encoded as
   * a single length-delimited blob. In proto3, only explicit setting it to
   * false will avoid using packed encoding.
   *
   * @generated from field: optional bool packed = 2;
   */
  packed: boolean;

  /**
   * The parser stores options it doesn't recognize here. See above.
   *
   * @generated from field: repeated perfetto.protos.UninterpretedOption uninterpreted_option = 999;
   */
  uninterpretedOption: UninterpretedOption[];
};

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

/**
 * Describes a field within a message.
 *
 * @generated from message perfetto.protos.FieldDescriptorProto
 */
export type FieldDescriptorProto = Message<"perfetto.protos.FieldDescriptorProto"> & {
  /**
   * @generated from field: optional string name = 1;
   */
  name: string;

  /**
   * @generated from field: optional int32 number = 3;
   */
  number: number;

  /**
   * @generated from field: optional perfetto.protos.FieldDescriptorProto.Label label = 4;
   */
  label: FieldDescriptorProto_Label;

  /**
   * If type_name is set, this need not be set.  If both this and type_name
   * are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
   *
   * @generated from field: optional perfetto.protos.FieldDescriptorProto.Type type = 5;
   */
  type: FieldDescriptorProto_Type;

  /**
   * For message and enum types, this is the name of the type.  If the name
   * starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping
   * rules are used to find the type (i.e. first the nested types within this
   * message are searched, then within the parent, on up to the root
   * namespace).
   *
   * @generated from field: optional string type_name = 6;
   */
  typeName: string;

  /**
   * For extensions, this is the name of the type being extended.  It is
   * resolved in the same manner as type_name.
   *
   * @generated from field: optional string extendee = 2;
   */
  extendee: string;

  /**
   * For numeric types, contains the original text representation of the value.
   * For booleans, "true" or "false".
   * For strings, contains the default text contents (not escaped in any way).
   * For bytes, contains the C escaped value.  All bytes >= 128 are escaped.
   * TODO(kenton):  Base-64 encode?
   *
   * @generated from field: optional string default_value = 7;
   */
  defaultValue: string;

  /**
   * @generated from field: optional perfetto.protos.FieldOptions options = 8;
   */
  options?: FieldOptions;

  /**
   * If set, gives the index of a oneof in the containing type's oneof_decl
   * list.  This field is a member of that oneof.
   *
   * @generated from field: optional int32 oneof_index = 9;
   */
  oneofIndex: number;
};

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

/**
 * @generated from enum perfetto.protos.FieldDescriptorProto.Type
 */
export enum FieldDescriptorProto_Type {
  /**
   * 0 is reserved for errors.
   * Order is weird for historical reasons.
   *
   * @generated from enum value: TYPE_DOUBLE = 1;
   */
  DOUBLE = 1,

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

  /**
   * Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if
   * negative values are likely.
   *
   * @generated from enum value: TYPE_INT64 = 3;
   */
  INT64 = 3,

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

  /**
   * Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if
   * negative values are likely.
   *
   * @generated from enum value: TYPE_INT32 = 5;
   */
  INT32 = 5,

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

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

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

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

  /**
   * Tag-delimited aggregate.
   * Group type is deprecated and not supported in proto3. However, Proto3
   * implementations should still be able to parse the group wire format and
   * treat group fields as unknown fields.
   *
   * @generated from enum value: TYPE_GROUP = 10;
   */
  GROUP = 10,

  /**
   * Length-delimited aggregate.
   *
   * @generated from enum value: TYPE_MESSAGE = 11;
   */
  MESSAGE = 11,

  /**
   * New in version 2.
   *
   * @generated from enum value: TYPE_BYTES = 12;
   */
  BYTES = 12,

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

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

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

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

  /**
   * Uses ZigZag encoding.
   *
   * @generated from enum value: TYPE_SINT32 = 17;
   */
  SINT32 = 17,

  /**
   * Uses ZigZag encoding.
   *
   * @generated from enum value: TYPE_SINT64 = 18;
   */
  SINT64 = 18,
}

/**
 * Describes the enum perfetto.protos.FieldDescriptorProto.Type.
 */
export const FieldDescriptorProto_TypeSchema: GenEnum<FieldDescriptorProto_Type> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_common_descriptor, 5, 0);

/**
 * @generated from enum perfetto.protos.FieldDescriptorProto.Label
 */
export enum FieldDescriptorProto_Label {
  /**
   * 0 is reserved for errors
   *
   * @generated from enum value: LABEL_OPTIONAL = 1;
   */
  OPTIONAL = 1,

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

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

/**
 * Describes the enum perfetto.protos.FieldDescriptorProto.Label.
 */
export const FieldDescriptorProto_LabelSchema: GenEnum<FieldDescriptorProto_Label> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_common_descriptor, 5, 1);

/**
 * Describes a oneof.
 *
 * @generated from message perfetto.protos.OneofDescriptorProto
 */
export type OneofDescriptorProto = Message<"perfetto.protos.OneofDescriptorProto"> & {
  /**
   * @generated from field: optional string name = 1;
   */
  name: string;

  /**
   * @generated from field: optional perfetto.protos.OneofOptions options = 2;
   */
  options?: OneofOptions;
};

/**
 * Describes the message perfetto.protos.OneofDescriptorProto.
 * Use `create(OneofDescriptorProtoSchema)` to create a new message.
 */
export const OneofDescriptorProtoSchema: GenMessage<OneofDescriptorProto> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_common_descriptor, 6);

/**
 * Describes an enum type.
 *
 * @generated from message perfetto.protos.EnumDescriptorProto
 */
export type EnumDescriptorProto = Message<"perfetto.protos.EnumDescriptorProto"> & {
  /**
   * @generated from field: optional string name = 1;
   */
  name: string;

  /**
   * @generated from field: repeated perfetto.protos.EnumValueDescriptorProto value = 2;
   */
  value: EnumValueDescriptorProto[];

  /**
   * Reserved enum value names, which may not be reused. A given name may only
   * be reserved once.
   *
   * @generated from field: repeated string reserved_name = 5;
   */
  reservedName: string[];
};

/**
 * Describes the message perfetto.protos.EnumDescriptorProto.
 * Use `create(EnumDescriptorProtoSchema)` to create a new message.
 */
export const EnumDescriptorProtoSchema: GenMessage<EnumDescriptorProto> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_common_descriptor, 7);

/**
 * Describes a value within an enum.
 *
 * @generated from message perfetto.protos.EnumValueDescriptorProto
 */
export type EnumValueDescriptorProto = Message<"perfetto.protos.EnumValueDescriptorProto"> & {
  /**
   * @generated from field: optional string name = 1;
   */
  name: string;

  /**
   * @generated from field: optional int32 number = 2;
   */
  number: number;
};

/**
 * Describes the message perfetto.protos.EnumValueDescriptorProto.
 * Use `create(EnumValueDescriptorProtoSchema)` to create a new message.
 */
export const EnumValueDescriptorProtoSchema: GenMessage<EnumValueDescriptorProto> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_common_descriptor, 8);

/**
 * @generated from message perfetto.protos.OneofOptions
 */
export type OneofOptions = Message<"perfetto.protos.OneofOptions"> & {
};

/**
 * Describes the message perfetto.protos.OneofOptions.
 * Use `create(OneofOptionsSchema)` to create a new message.
 */
export const OneofOptionsSchema: GenMessage<OneofOptions> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_common_descriptor, 9);

