text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: google/protobuf/type.proto
  
  #import "GPBProtocolBuffers.h"
  
  #if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000
  #error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
  #endif
  
  // @@protoc_insertion_point(imports)
  
  CF_EXTERN_C_BEGIN
  
  @class GPBAny;
  @class GPBSourceContext;
  
  NS_ASSUME_NONNULL_BEGIN
  
  #pragma mark - Enum GPBSyntax
  
  // Syntax specifies the syntax in which a service element was defined.
  typedef GPB_ENUM(GPBSyntax) {
    GPBSyntax_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
    // Syntax "proto2"
    GPBSyntax_SyntaxProto2 = 0,
  
    // Syntax "proto3"
    GPBSyntax_SyntaxProto3 = 1,
  };
  
  GPBEnumDescriptor *GPBSyntax_EnumDescriptor(void);
  
  BOOL GPBSyntax_IsValidValue(int32_t value);
  
  #pragma mark - Enum GPBField_Kind
  
  // Kind represents a basic field type.
  typedef GPB_ENUM(GPBField_Kind) {
    GPBField_Kind_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
    // Field type unknown.
    GPBField_Kind_TypeUnknown = 0,
  
    // Field type double.
    GPBField_Kind_TypeDouble = 1,
  
    // Field type float.
    GPBField_Kind_TypeFloat = 2,
  
    // Field type int64.
    GPBField_Kind_TypeInt64 = 3,
  
    // Field type uint64.
    GPBField_Kind_TypeUint64 = 4,
  
    // Field type int32.
    GPBField_Kind_TypeInt32 = 5,
  
    // Field type fixed64.
    GPBField_Kind_TypeFixed64 = 6,
  
    // Field type fixed32.
    GPBField_Kind_TypeFixed32 = 7,
  
    // Field type bool.
    GPBField_Kind_TypeBool = 8,
  
    // Field type string.
    GPBField_Kind_TypeString = 9,
  
    // Field type group (deprecated proto2 type)
    GPBField_Kind_TypeGroup = 10,
  
    // Field type message.
    GPBField_Kind_TypeMessage = 11,
  
    // Field type bytes.
    GPBField_Kind_TypeBytes = 12,
  
    // Field type uint32.
    GPBField_Kind_TypeUint32 = 13,
  
    // Field type enum.
    GPBField_Kind_TypeEnum = 14,
  
    // Field type sfixed32.
    GPBField_Kind_TypeSfixed32 = 15,
  
    // Field type sfixed64.
    GPBField_Kind_TypeSfixed64 = 16,
  
    // Field type sint32.
    GPBField_Kind_TypeSint32 = 17,
  
    // Field type sint64.
    GPBField_Kind_TypeSint64 = 18,
  };
  
  GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void);
  
  BOOL GPBField_Kind_IsValidValue(int32_t value);
  
  #pragma mark - Enum GPBField_Cardinality
  
  // Cardinality represents whether a field is optional, required, or
  // repeated.
  typedef GPB_ENUM(GPBField_Cardinality) {
    GPBField_Cardinality_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
    // The field cardinality is unknown. Typically an error condition.
    GPBField_Cardinality_CardinalityUnknown = 0,
  
    // For optional fields.
    GPBField_Cardinality_CardinalityOptional = 1,
  
    // For required fields. Not used for proto3.
    GPBField_Cardinality_CardinalityRequired = 2,
  
    // For repeated fields.
    GPBField_Cardinality_CardinalityRepeated = 3,
  };
  
  GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void);
  
  BOOL GPBField_Cardinality_IsValidValue(int32_t value);
  
  #pragma mark - GPBTypeRoot
  
  @interface GPBTypeRoot : GPBRootObject
  
  // The base class provides:
  //   + (GPBExtensionRegistry *)extensionRegistry;
  // which is an GPBExtensionRegistry that includes all the extensions defined by
  // this file and all files that it depends on.
  
  @end
  
  #pragma mark - GPBType
  
  typedef GPB_ENUM(GPBType_FieldNumber) {
    GPBType_FieldNumber_Name = 1,
    GPBType_FieldNumber_FieldsArray = 2,
    GPBType_FieldNumber_OneofsArray = 3,
    GPBType_FieldNumber_OptionsArray = 4,
    GPBType_FieldNumber_SourceContext = 5,
    GPBType_FieldNumber_Syntax = 6,
  };
  
  // A light-weight descriptor for a proto message type.
  @interface GPBType : GPBMessage
  
  // The fully qualified message name.
  @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
  
  // The list of fields.
  // |fieldsArray| contains |GPBField|
  @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *fieldsArray;
  @property(nonatomic, readonly) NSUInteger fieldsArray_Count;
  
  // The list of oneof definitions.
  // |oneofsArray| contains |NSString|
  @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *oneofsArray;
  @property(nonatomic, readonly) NSUInteger oneofsArray_Count;
  
  // The proto options.
  // |optionsArray| contains |GPBOption|
  @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray;
  @property(nonatomic, readonly) NSUInteger optionsArray_Count;
  
  // The source context.
  @property(nonatomic, readwrite) BOOL hasSourceContext;
  @property(nonatomic, readwrite, strong, null_resettable) GPBSourceContext *sourceContext;
  
  // The source syntax.
  @property(nonatomic, readwrite) GPBSyntax syntax;
  
  @end
  
  int32_t GPBType_Syntax_RawValue(GPBType *message);
  void SetGPBType_Syntax_RawValue(GPBType *message, int32_t value);
  
  #pragma mark - GPBField
  
  typedef GPB_ENUM(GPBField_FieldNumber) {
    GPBField_FieldNumber_Kind = 1,
    GPBField_FieldNumber_Cardinality = 2,
    GPBField_FieldNumber_Number = 3,
    GPBField_FieldNumber_Name = 4,
    GPBField_FieldNumber_TypeURL = 6,
    GPBField_FieldNumber_OneofIndex = 7,
    GPBField_FieldNumber_Packed = 8,
    GPBField_FieldNumber_OptionsArray = 9,
    GPBField_FieldNumber_JsonName = 10,
  };
  
  // Field represents a single field of a message type.
  @interface GPBField : GPBMessage
  
  // The field kind.
  @property(nonatomic, readwrite) GPBField_Kind kind;
  
  // The field cardinality, i.e. optional/required/repeated.
  @property(nonatomic, readwrite) GPBField_Cardinality cardinality;
  
  // The proto field number.
  @property(nonatomic, readwrite) int32_t number;
  
  // The field name.
  @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
  
  // The type URL (without the scheme) when the type is MESSAGE or ENUM,
  // such as `type.googleapis.com/google.protobuf.Empty`.
  @property(nonatomic, readwrite, copy, null_resettable) NSString *typeURL;
  
  // Index in Type.oneofs. Starts at 1. Zero means no oneof mapping.
  @property(nonatomic, readwrite) int32_t oneofIndex;
  
  // Whether to use alternative packed wire representation.
  @property(nonatomic, readwrite) BOOL packed;
  
  // The proto options.
  // |optionsArray| contains |GPBOption|
  @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray;
  @property(nonatomic, readonly) NSUInteger optionsArray_Count;
  
  // The JSON name for this field.
  @property(nonatomic, readwrite, copy, null_resettable) NSString *jsonName;
  
  @end
  
  int32_t GPBField_Kind_RawValue(GPBField *message);
  void SetGPBField_Kind_RawValue(GPBField *message, int32_t value);
  
  int32_t GPBField_Cardinality_RawValue(GPBField *message);
  void SetGPBField_Cardinality_RawValue(GPBField *message, int32_t value);
  
  #pragma mark - GPBEnum
  
  typedef GPB_ENUM(GPBEnum_FieldNumber) {
    GPBEnum_FieldNumber_Name = 1,
    GPBEnum_FieldNumber_EnumvalueArray = 2,
    GPBEnum_FieldNumber_OptionsArray = 3,
    GPBEnum_FieldNumber_SourceContext = 4,
    GPBEnum_FieldNumber_Syntax = 5,
  };
  
  // Enum type definition.
  @interface GPBEnum : GPBMessage
  
  // Enum type name.
  @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
  
  // Enum value definitions.
  // |enumvalueArray| contains |GPBEnumValue|
  @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *enumvalueArray;
  @property(nonatomic, readonly) NSUInteger enumvalueArray_Count;
  
  // Proto options for the enum type.
  // |optionsArray| contains |GPBOption|
  @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray;
  @property(nonatomic, readonly) NSUInteger optionsArray_Count;
  
  // The source context.
  @property(nonatomic, readwrite) BOOL hasSourceContext;
  @property(nonatomic, readwrite, strong, null_resettable) GPBSourceContext *sourceContext;
  
  // The source syntax.
  @property(nonatomic, readwrite) GPBSyntax syntax;
  
  @end
  
  int32_t GPBEnum_Syntax_RawValue(GPBEnum *message);
  void SetGPBEnum_Syntax_RawValue(GPBEnum *message, int32_t value);
  
  #pragma mark - GPBEnumValue
  
  typedef GPB_ENUM(GPBEnumValue_FieldNumber) {
    GPBEnumValue_FieldNumber_Name = 1,
    GPBEnumValue_FieldNumber_Number = 2,
    GPBEnumValue_FieldNumber_OptionsArray = 3,
  };
  
  // Enum value definition.
  @interface GPBEnumValue : GPBMessage
  
  // Enum value name.
  @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
  
  // Enum value number.
  @property(nonatomic, readwrite) int32_t number;
  
  // Proto options for the enum value.
  // |optionsArray| contains |GPBOption|
  @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray;
  @property(nonatomic, readonly) NSUInteger optionsArray_Count;
  
  @end
  
  #pragma mark - GPBOption
  
  typedef GPB_ENUM(GPBOption_FieldNumber) {
    GPBOption_FieldNumber_Name = 1,
    GPBOption_FieldNumber_Value = 2,
  };
  
  // Proto option attached to messages/fields/enums etc.
  @interface GPBOption : GPBMessage
  
  // Proto option name.
  @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
  
  // Proto option value.
  @property(nonatomic, readwrite) BOOL hasValue;
  @property(nonatomic, readwrite, strong, null_resettable) GPBAny *value;
  
  @end
  
  NS_ASSUME_NONNULL_END
  
  CF_EXTERN_C_END
  
  // @@protoc_insertion_point(global_scope)
  