// This is a generated file - do not edit.
//
// Generated from messages.proto.

// @dart = 3.3

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports

import 'dart:core' as $core;

import 'package:fixnum/fixnum.dart' as $fixnum;
import 'package:protobuf/protobuf.dart' as $pb;

import 'messages.pbenum.dart';

export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;

export 'messages.pbenum.dart';

class Message extends $pb.GeneratedMessage {
  factory Message({
    Message_Type? type,
    $core.String? receiptId,
    $core.List<$core.int>? encryptedContent,
    PlaintextContent? plaintextContent,
  }) {
    final result = create();
    if (type != null) result.type = type;
    if (receiptId != null) result.receiptId = receiptId;
    if (encryptedContent != null) result.encryptedContent = encryptedContent;
    if (plaintextContent != null) result.plaintextContent = plaintextContent;
    return result;
  }

  Message._();

  factory Message.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory Message.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'Message',
      createEmptyInstance: create)
    ..aE<Message_Type>(1, _omitFieldNames ? '' : 'type',
        enumValues: Message_Type.values)
    ..aOS(2, _omitFieldNames ? '' : 'receiptId')
    ..a<$core.List<$core.int>>(
        3, _omitFieldNames ? '' : 'encryptedContent', $pb.PbFieldType.OY)
    ..aOM<PlaintextContent>(4, _omitFieldNames ? '' : 'plaintextContent',
        subBuilder: PlaintextContent.create)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Message clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Message copyWith(void Function(Message) updates) =>
      super.copyWith((message) => updates(message as Message)) as Message;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static Message create() => Message._();
  @$core.override
  Message createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static Message getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Message>(create);
  static Message? _defaultInstance;

  @$pb.TagNumber(1)
  Message_Type get type => $_getN(0);
  @$pb.TagNumber(1)
  set type(Message_Type value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasType() => $_has(0);
  @$pb.TagNumber(1)
  void clearType() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get receiptId => $_getSZ(1);
  @$pb.TagNumber(2)
  set receiptId($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasReceiptId() => $_has(1);
  @$pb.TagNumber(2)
  void clearReceiptId() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.List<$core.int> get encryptedContent => $_getN(2);
  @$pb.TagNumber(3)
  set encryptedContent($core.List<$core.int> value) => $_setBytes(2, value);
  @$pb.TagNumber(3)
  $core.bool hasEncryptedContent() => $_has(2);
  @$pb.TagNumber(3)
  void clearEncryptedContent() => $_clearField(3);

  @$pb.TagNumber(4)
  PlaintextContent get plaintextContent => $_getN(3);
  @$pb.TagNumber(4)
  set plaintextContent(PlaintextContent value) => $_setField(4, value);
  @$pb.TagNumber(4)
  $core.bool hasPlaintextContent() => $_has(3);
  @$pb.TagNumber(4)
  void clearPlaintextContent() => $_clearField(4);
  @$pb.TagNumber(4)
  PlaintextContent ensurePlaintextContent() => $_ensure(3);
}

class PlaintextContent_RetryErrorMessage extends $pb.GeneratedMessage {
  factory PlaintextContent_RetryErrorMessage() => create();

  PlaintextContent_RetryErrorMessage._();

  factory PlaintextContent_RetryErrorMessage.fromBuffer(
          $core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory PlaintextContent_RetryErrorMessage.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'PlaintextContent.RetryErrorMessage',
      createEmptyInstance: create)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  PlaintextContent_RetryErrorMessage clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  PlaintextContent_RetryErrorMessage copyWith(
          void Function(PlaintextContent_RetryErrorMessage) updates) =>
      super.copyWith((message) =>
              updates(message as PlaintextContent_RetryErrorMessage))
          as PlaintextContent_RetryErrorMessage;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static PlaintextContent_RetryErrorMessage create() =>
      PlaintextContent_RetryErrorMessage._();
  @$core.override
  PlaintextContent_RetryErrorMessage createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static PlaintextContent_RetryErrorMessage getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<PlaintextContent_RetryErrorMessage>(
          create);
  static PlaintextContent_RetryErrorMessage? _defaultInstance;
}

class PlaintextContent_DecryptionErrorMessage extends $pb.GeneratedMessage {
  factory PlaintextContent_DecryptionErrorMessage({
    PlaintextContent_DecryptionErrorMessage_Type? type,
  }) {
    final result = create();
    if (type != null) result.type = type;
    return result;
  }

  PlaintextContent_DecryptionErrorMessage._();

  factory PlaintextContent_DecryptionErrorMessage.fromBuffer(
          $core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory PlaintextContent_DecryptionErrorMessage.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'PlaintextContent.DecryptionErrorMessage',
      createEmptyInstance: create)
    ..aE<PlaintextContent_DecryptionErrorMessage_Type>(
        1, _omitFieldNames ? '' : 'type',
        enumValues: PlaintextContent_DecryptionErrorMessage_Type.values)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  PlaintextContent_DecryptionErrorMessage clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  PlaintextContent_DecryptionErrorMessage copyWith(
          void Function(PlaintextContent_DecryptionErrorMessage) updates) =>
      super.copyWith((message) =>
              updates(message as PlaintextContent_DecryptionErrorMessage))
          as PlaintextContent_DecryptionErrorMessage;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static PlaintextContent_DecryptionErrorMessage create() =>
      PlaintextContent_DecryptionErrorMessage._();
  @$core.override
  PlaintextContent_DecryptionErrorMessage createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static PlaintextContent_DecryptionErrorMessage getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
          PlaintextContent_DecryptionErrorMessage>(create);
  static PlaintextContent_DecryptionErrorMessage? _defaultInstance;

  @$pb.TagNumber(1)
  PlaintextContent_DecryptionErrorMessage_Type get type => $_getN(0);
  @$pb.TagNumber(1)
  set type(PlaintextContent_DecryptionErrorMessage_Type value) =>
      $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasType() => $_has(0);
  @$pb.TagNumber(1)
  void clearType() => $_clearField(1);
}

class PlaintextContent extends $pb.GeneratedMessage {
  factory PlaintextContent({
    PlaintextContent_DecryptionErrorMessage? decryptionErrorMessage,
    PlaintextContent_RetryErrorMessage? retryControlError,
  }) {
    final result = create();
    if (decryptionErrorMessage != null)
      result.decryptionErrorMessage = decryptionErrorMessage;
    if (retryControlError != null) result.retryControlError = retryControlError;
    return result;
  }

  PlaintextContent._();

  factory PlaintextContent.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory PlaintextContent.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'PlaintextContent',
      createEmptyInstance: create)
    ..aOM<PlaintextContent_DecryptionErrorMessage>(
        1, _omitFieldNames ? '' : 'decryptionErrorMessage',
        subBuilder: PlaintextContent_DecryptionErrorMessage.create)
    ..aOM<PlaintextContent_RetryErrorMessage>(
        2, _omitFieldNames ? '' : 'retryControlError',
        subBuilder: PlaintextContent_RetryErrorMessage.create)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  PlaintextContent clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  PlaintextContent copyWith(void Function(PlaintextContent) updates) =>
      super.copyWith((message) => updates(message as PlaintextContent))
          as PlaintextContent;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static PlaintextContent create() => PlaintextContent._();
  @$core.override
  PlaintextContent createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static PlaintextContent getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<PlaintextContent>(create);
  static PlaintextContent? _defaultInstance;

  @$pb.TagNumber(1)
  PlaintextContent_DecryptionErrorMessage get decryptionErrorMessage =>
      $_getN(0);
  @$pb.TagNumber(1)
  set decryptionErrorMessage(PlaintextContent_DecryptionErrorMessage value) =>
      $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasDecryptionErrorMessage() => $_has(0);
  @$pb.TagNumber(1)
  void clearDecryptionErrorMessage() => $_clearField(1);
  @$pb.TagNumber(1)
  PlaintextContent_DecryptionErrorMessage ensureDecryptionErrorMessage() =>
      $_ensure(0);

  @$pb.TagNumber(2)
  PlaintextContent_RetryErrorMessage get retryControlError => $_getN(1);
  @$pb.TagNumber(2)
  set retryControlError(PlaintextContent_RetryErrorMessage value) =>
      $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasRetryControlError() => $_has(1);
  @$pb.TagNumber(2)
  void clearRetryControlError() => $_clearField(2);
  @$pb.TagNumber(2)
  PlaintextContent_RetryErrorMessage ensureRetryControlError() => $_ensure(1);
}

class EncryptedContent_ErrorMessages extends $pb.GeneratedMessage {
  factory EncryptedContent_ErrorMessages({
    EncryptedContent_ErrorMessages_Type? type,
    $core.String? relatedReceiptId,
  }) {
    final result = create();
    if (type != null) result.type = type;
    if (relatedReceiptId != null) result.relatedReceiptId = relatedReceiptId;
    return result;
  }

  EncryptedContent_ErrorMessages._();

  factory EncryptedContent_ErrorMessages.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_ErrorMessages.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.ErrorMessages',
      createEmptyInstance: create)
    ..aE<EncryptedContent_ErrorMessages_Type>(1, _omitFieldNames ? '' : 'type',
        enumValues: EncryptedContent_ErrorMessages_Type.values)
    ..aOS(2, _omitFieldNames ? '' : 'relatedReceiptId')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_ErrorMessages clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_ErrorMessages copyWith(
          void Function(EncryptedContent_ErrorMessages) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_ErrorMessages))
          as EncryptedContent_ErrorMessages;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_ErrorMessages create() =>
      EncryptedContent_ErrorMessages._();
  @$core.override
  EncryptedContent_ErrorMessages createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_ErrorMessages getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_ErrorMessages>(create);
  static EncryptedContent_ErrorMessages? _defaultInstance;

  @$pb.TagNumber(1)
  EncryptedContent_ErrorMessages_Type get type => $_getN(0);
  @$pb.TagNumber(1)
  set type(EncryptedContent_ErrorMessages_Type value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasType() => $_has(0);
  @$pb.TagNumber(1)
  void clearType() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get relatedReceiptId => $_getSZ(1);
  @$pb.TagNumber(2)
  set relatedReceiptId($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasRelatedReceiptId() => $_has(1);
  @$pb.TagNumber(2)
  void clearRelatedReceiptId() => $_clearField(2);
}

class EncryptedContent_GroupCreate extends $pb.GeneratedMessage {
  factory EncryptedContent_GroupCreate({
    $core.List<$core.int>? stateKey,
    $core.List<$core.int>? groupPublicKey,
    $core.String? groupName,
  }) {
    final result = create();
    if (stateKey != null) result.stateKey = stateKey;
    if (groupPublicKey != null) result.groupPublicKey = groupPublicKey;
    if (groupName != null) result.groupName = groupName;
    return result;
  }

  EncryptedContent_GroupCreate._();

  factory EncryptedContent_GroupCreate.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_GroupCreate.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.GroupCreate',
      createEmptyInstance: create)
    ..a<$core.List<$core.int>>(
        3, _omitFieldNames ? '' : 'stateKey', $pb.PbFieldType.OY)
    ..a<$core.List<$core.int>>(
        4, _omitFieldNames ? '' : 'groupPublicKey', $pb.PbFieldType.OY)
    ..aOS(5, _omitFieldNames ? '' : 'groupName')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_GroupCreate clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_GroupCreate copyWith(
          void Function(EncryptedContent_GroupCreate) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_GroupCreate))
          as EncryptedContent_GroupCreate;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_GroupCreate create() =>
      EncryptedContent_GroupCreate._();
  @$core.override
  EncryptedContent_GroupCreate createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_GroupCreate getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_GroupCreate>(create);
  static EncryptedContent_GroupCreate? _defaultInstance;

  /// key for the state stored on the server
  @$pb.TagNumber(3)
  $core.List<$core.int> get stateKey => $_getN(0);
  @$pb.TagNumber(3)
  set stateKey($core.List<$core.int> value) => $_setBytes(0, value);
  @$pb.TagNumber(3)
  $core.bool hasStateKey() => $_has(0);
  @$pb.TagNumber(3)
  void clearStateKey() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.List<$core.int> get groupPublicKey => $_getN(1);
  @$pb.TagNumber(4)
  set groupPublicKey($core.List<$core.int> value) => $_setBytes(1, value);
  @$pb.TagNumber(4)
  $core.bool hasGroupPublicKey() => $_has(1);
  @$pb.TagNumber(4)
  void clearGroupPublicKey() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.String get groupName => $_getSZ(2);
  @$pb.TagNumber(5)
  set groupName($core.String value) => $_setString(2, value);
  @$pb.TagNumber(5)
  $core.bool hasGroupName() => $_has(2);
  @$pb.TagNumber(5)
  void clearGroupName() => $_clearField(5);
}

class EncryptedContent_GroupJoin extends $pb.GeneratedMessage {
  factory EncryptedContent_GroupJoin({
    $core.List<$core.int>? groupPublicKey,
  }) {
    final result = create();
    if (groupPublicKey != null) result.groupPublicKey = groupPublicKey;
    return result;
  }

  EncryptedContent_GroupJoin._();

  factory EncryptedContent_GroupJoin.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_GroupJoin.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.GroupJoin',
      createEmptyInstance: create)
    ..a<$core.List<$core.int>>(
        1, _omitFieldNames ? '' : 'groupPublicKey', $pb.PbFieldType.OY)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_GroupJoin clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_GroupJoin copyWith(
          void Function(EncryptedContent_GroupJoin) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_GroupJoin))
          as EncryptedContent_GroupJoin;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_GroupJoin create() => EncryptedContent_GroupJoin._();
  @$core.override
  EncryptedContent_GroupJoin createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_GroupJoin getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_GroupJoin>(create);
  static EncryptedContent_GroupJoin? _defaultInstance;

  /// key for the state stored on the server
  @$pb.TagNumber(1)
  $core.List<$core.int> get groupPublicKey => $_getN(0);
  @$pb.TagNumber(1)
  set groupPublicKey($core.List<$core.int> value) => $_setBytes(0, value);
  @$pb.TagNumber(1)
  $core.bool hasGroupPublicKey() => $_has(0);
  @$pb.TagNumber(1)
  void clearGroupPublicKey() => $_clearField(1);
}

class EncryptedContent_ResendGroupPublicKey extends $pb.GeneratedMessage {
  factory EncryptedContent_ResendGroupPublicKey() => create();

  EncryptedContent_ResendGroupPublicKey._();

  factory EncryptedContent_ResendGroupPublicKey.fromBuffer(
          $core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_ResendGroupPublicKey.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.ResendGroupPublicKey',
      createEmptyInstance: create)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_ResendGroupPublicKey clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_ResendGroupPublicKey copyWith(
          void Function(EncryptedContent_ResendGroupPublicKey) updates) =>
      super.copyWith((message) =>
              updates(message as EncryptedContent_ResendGroupPublicKey))
          as EncryptedContent_ResendGroupPublicKey;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_ResendGroupPublicKey create() =>
      EncryptedContent_ResendGroupPublicKey._();
  @$core.override
  EncryptedContent_ResendGroupPublicKey createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_ResendGroupPublicKey getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
          EncryptedContent_ResendGroupPublicKey>(create);
  static EncryptedContent_ResendGroupPublicKey? _defaultInstance;
}

class EncryptedContent_GroupUpdate extends $pb.GeneratedMessage {
  factory EncryptedContent_GroupUpdate({
    $core.String? groupActionType,
    $fixnum.Int64? affectedContactId,
    $core.String? newGroupName,
    $fixnum.Int64? newDeleteMessagesAfterMilliseconds,
  }) {
    final result = create();
    if (groupActionType != null) result.groupActionType = groupActionType;
    if (affectedContactId != null) result.affectedContactId = affectedContactId;
    if (newGroupName != null) result.newGroupName = newGroupName;
    if (newDeleteMessagesAfterMilliseconds != null)
      result.newDeleteMessagesAfterMilliseconds =
          newDeleteMessagesAfterMilliseconds;
    return result;
  }

  EncryptedContent_GroupUpdate._();

  factory EncryptedContent_GroupUpdate.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_GroupUpdate.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.GroupUpdate',
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'groupActionType')
    ..aInt64(2, _omitFieldNames ? '' : 'affectedContactId')
    ..aOS(3, _omitFieldNames ? '' : 'newGroupName')
    ..aInt64(4, _omitFieldNames ? '' : 'newDeleteMessagesAfterMilliseconds')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_GroupUpdate clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_GroupUpdate copyWith(
          void Function(EncryptedContent_GroupUpdate) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_GroupUpdate))
          as EncryptedContent_GroupUpdate;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_GroupUpdate create() =>
      EncryptedContent_GroupUpdate._();
  @$core.override
  EncryptedContent_GroupUpdate createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_GroupUpdate getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_GroupUpdate>(create);
  static EncryptedContent_GroupUpdate? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get groupActionType => $_getSZ(0);
  @$pb.TagNumber(1)
  set groupActionType($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasGroupActionType() => $_has(0);
  @$pb.TagNumber(1)
  void clearGroupActionType() => $_clearField(1);

  @$pb.TagNumber(2)
  $fixnum.Int64 get affectedContactId => $_getI64(1);
  @$pb.TagNumber(2)
  set affectedContactId($fixnum.Int64 value) => $_setInt64(1, value);
  @$pb.TagNumber(2)
  $core.bool hasAffectedContactId() => $_has(1);
  @$pb.TagNumber(2)
  void clearAffectedContactId() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get newGroupName => $_getSZ(2);
  @$pb.TagNumber(3)
  set newGroupName($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasNewGroupName() => $_has(2);
  @$pb.TagNumber(3)
  void clearNewGroupName() => $_clearField(3);

  @$pb.TagNumber(4)
  $fixnum.Int64 get newDeleteMessagesAfterMilliseconds => $_getI64(3);
  @$pb.TagNumber(4)
  set newDeleteMessagesAfterMilliseconds($fixnum.Int64 value) =>
      $_setInt64(3, value);
  @$pb.TagNumber(4)
  $core.bool hasNewDeleteMessagesAfterMilliseconds() => $_has(3);
  @$pb.TagNumber(4)
  void clearNewDeleteMessagesAfterMilliseconds() => $_clearField(4);
}

class EncryptedContent_TextMessage extends $pb.GeneratedMessage {
  factory EncryptedContent_TextMessage({
    $core.String? senderMessageId,
    $core.String? text,
    $fixnum.Int64? timestamp,
    $core.String? quoteMessageId,
  }) {
    final result = create();
    if (senderMessageId != null) result.senderMessageId = senderMessageId;
    if (text != null) result.text = text;
    if (timestamp != null) result.timestamp = timestamp;
    if (quoteMessageId != null) result.quoteMessageId = quoteMessageId;
    return result;
  }

  EncryptedContent_TextMessage._();

  factory EncryptedContent_TextMessage.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_TextMessage.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.TextMessage',
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'senderMessageId')
    ..aOS(2, _omitFieldNames ? '' : 'text')
    ..aInt64(3, _omitFieldNames ? '' : 'timestamp')
    ..aOS(4, _omitFieldNames ? '' : 'quoteMessageId')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_TextMessage clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_TextMessage copyWith(
          void Function(EncryptedContent_TextMessage) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_TextMessage))
          as EncryptedContent_TextMessage;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_TextMessage create() =>
      EncryptedContent_TextMessage._();
  @$core.override
  EncryptedContent_TextMessage createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_TextMessage getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_TextMessage>(create);
  static EncryptedContent_TextMessage? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get senderMessageId => $_getSZ(0);
  @$pb.TagNumber(1)
  set senderMessageId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasSenderMessageId() => $_has(0);
  @$pb.TagNumber(1)
  void clearSenderMessageId() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get text => $_getSZ(1);
  @$pb.TagNumber(2)
  set text($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasText() => $_has(1);
  @$pb.TagNumber(2)
  void clearText() => $_clearField(2);

  @$pb.TagNumber(3)
  $fixnum.Int64 get timestamp => $_getI64(2);
  @$pb.TagNumber(3)
  set timestamp($fixnum.Int64 value) => $_setInt64(2, value);
  @$pb.TagNumber(3)
  $core.bool hasTimestamp() => $_has(2);
  @$pb.TagNumber(3)
  void clearTimestamp() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get quoteMessageId => $_getSZ(3);
  @$pb.TagNumber(4)
  set quoteMessageId($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasQuoteMessageId() => $_has(3);
  @$pb.TagNumber(4)
  void clearQuoteMessageId() => $_clearField(4);
}

class EncryptedContent_AdditionalDataMessage extends $pb.GeneratedMessage {
  factory EncryptedContent_AdditionalDataMessage({
    $core.String? senderMessageId,
    $fixnum.Int64? timestamp,
    $core.String? type,
    $core.List<$core.int>? additionalMessageData,
  }) {
    final result = create();
    if (senderMessageId != null) result.senderMessageId = senderMessageId;
    if (timestamp != null) result.timestamp = timestamp;
    if (type != null) result.type = type;
    if (additionalMessageData != null)
      result.additionalMessageData = additionalMessageData;
    return result;
  }

  EncryptedContent_AdditionalDataMessage._();

  factory EncryptedContent_AdditionalDataMessage.fromBuffer(
          $core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_AdditionalDataMessage.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.AdditionalDataMessage',
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'senderMessageId')
    ..aInt64(2, _omitFieldNames ? '' : 'timestamp')
    ..aOS(3, _omitFieldNames ? '' : 'type')
    ..a<$core.List<$core.int>>(
        4, _omitFieldNames ? '' : 'additionalMessageData', $pb.PbFieldType.OY)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_AdditionalDataMessage clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_AdditionalDataMessage copyWith(
          void Function(EncryptedContent_AdditionalDataMessage) updates) =>
      super.copyWith((message) =>
              updates(message as EncryptedContent_AdditionalDataMessage))
          as EncryptedContent_AdditionalDataMessage;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_AdditionalDataMessage create() =>
      EncryptedContent_AdditionalDataMessage._();
  @$core.override
  EncryptedContent_AdditionalDataMessage createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_AdditionalDataMessage getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
          EncryptedContent_AdditionalDataMessage>(create);
  static EncryptedContent_AdditionalDataMessage? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get senderMessageId => $_getSZ(0);
  @$pb.TagNumber(1)
  set senderMessageId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasSenderMessageId() => $_has(0);
  @$pb.TagNumber(1)
  void clearSenderMessageId() => $_clearField(1);

  @$pb.TagNumber(2)
  $fixnum.Int64 get timestamp => $_getI64(1);
  @$pb.TagNumber(2)
  set timestamp($fixnum.Int64 value) => $_setInt64(1, value);
  @$pb.TagNumber(2)
  $core.bool hasTimestamp() => $_has(1);
  @$pb.TagNumber(2)
  void clearTimestamp() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get type => $_getSZ(2);
  @$pb.TagNumber(3)
  set type($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasType() => $_has(2);
  @$pb.TagNumber(3)
  void clearType() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.List<$core.int> get additionalMessageData => $_getN(3);
  @$pb.TagNumber(4)
  set additionalMessageData($core.List<$core.int> value) =>
      $_setBytes(3, value);
  @$pb.TagNumber(4)
  $core.bool hasAdditionalMessageData() => $_has(3);
  @$pb.TagNumber(4)
  void clearAdditionalMessageData() => $_clearField(4);
}

class EncryptedContent_Reaction extends $pb.GeneratedMessage {
  factory EncryptedContent_Reaction({
    $core.String? targetMessageId,
    $core.String? emoji,
    $core.bool? remove,
  }) {
    final result = create();
    if (targetMessageId != null) result.targetMessageId = targetMessageId;
    if (emoji != null) result.emoji = emoji;
    if (remove != null) result.remove = remove;
    return result;
  }

  EncryptedContent_Reaction._();

  factory EncryptedContent_Reaction.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_Reaction.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.Reaction',
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'targetMessageId')
    ..aOS(2, _omitFieldNames ? '' : 'emoji')
    ..aOB(3, _omitFieldNames ? '' : 'remove')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_Reaction clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_Reaction copyWith(
          void Function(EncryptedContent_Reaction) updates) =>
      super.copyWith((message) => updates(message as EncryptedContent_Reaction))
          as EncryptedContent_Reaction;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_Reaction create() => EncryptedContent_Reaction._();
  @$core.override
  EncryptedContent_Reaction createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_Reaction getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_Reaction>(create);
  static EncryptedContent_Reaction? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get targetMessageId => $_getSZ(0);
  @$pb.TagNumber(1)
  set targetMessageId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasTargetMessageId() => $_has(0);
  @$pb.TagNumber(1)
  void clearTargetMessageId() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get emoji => $_getSZ(1);
  @$pb.TagNumber(2)
  set emoji($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasEmoji() => $_has(1);
  @$pb.TagNumber(2)
  void clearEmoji() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.bool get remove => $_getBF(2);
  @$pb.TagNumber(3)
  set remove($core.bool value) => $_setBool(2, value);
  @$pb.TagNumber(3)
  $core.bool hasRemove() => $_has(2);
  @$pb.TagNumber(3)
  void clearRemove() => $_clearField(3);
}

class EncryptedContent_MessageUpdate extends $pb.GeneratedMessage {
  factory EncryptedContent_MessageUpdate({
    EncryptedContent_MessageUpdate_Type? type,
    $core.String? senderMessageId,
    $core.Iterable<$core.String>? multipleTargetMessageIds,
    $core.String? text,
    $fixnum.Int64? timestamp,
  }) {
    final result = create();
    if (type != null) result.type = type;
    if (senderMessageId != null) result.senderMessageId = senderMessageId;
    if (multipleTargetMessageIds != null)
      result.multipleTargetMessageIds.addAll(multipleTargetMessageIds);
    if (text != null) result.text = text;
    if (timestamp != null) result.timestamp = timestamp;
    return result;
  }

  EncryptedContent_MessageUpdate._();

  factory EncryptedContent_MessageUpdate.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_MessageUpdate.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.MessageUpdate',
      createEmptyInstance: create)
    ..aE<EncryptedContent_MessageUpdate_Type>(1, _omitFieldNames ? '' : 'type',
        enumValues: EncryptedContent_MessageUpdate_Type.values)
    ..aOS(2, _omitFieldNames ? '' : 'senderMessageId')
    ..pPS(3, _omitFieldNames ? '' : 'multipleTargetMessageIds')
    ..aOS(4, _omitFieldNames ? '' : 'text')
    ..aInt64(5, _omitFieldNames ? '' : 'timestamp')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_MessageUpdate clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_MessageUpdate copyWith(
          void Function(EncryptedContent_MessageUpdate) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_MessageUpdate))
          as EncryptedContent_MessageUpdate;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_MessageUpdate create() =>
      EncryptedContent_MessageUpdate._();
  @$core.override
  EncryptedContent_MessageUpdate createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_MessageUpdate getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_MessageUpdate>(create);
  static EncryptedContent_MessageUpdate? _defaultInstance;

  @$pb.TagNumber(1)
  EncryptedContent_MessageUpdate_Type get type => $_getN(0);
  @$pb.TagNumber(1)
  set type(EncryptedContent_MessageUpdate_Type value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasType() => $_has(0);
  @$pb.TagNumber(1)
  void clearType() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get senderMessageId => $_getSZ(1);
  @$pb.TagNumber(2)
  set senderMessageId($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasSenderMessageId() => $_has(1);
  @$pb.TagNumber(2)
  void clearSenderMessageId() => $_clearField(2);

  @$pb.TagNumber(3)
  $pb.PbList<$core.String> get multipleTargetMessageIds => $_getList(2);

  @$pb.TagNumber(4)
  $core.String get text => $_getSZ(3);
  @$pb.TagNumber(4)
  set text($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasText() => $_has(3);
  @$pb.TagNumber(4)
  void clearText() => $_clearField(4);

  @$pb.TagNumber(5)
  $fixnum.Int64 get timestamp => $_getI64(4);
  @$pb.TagNumber(5)
  set timestamp($fixnum.Int64 value) => $_setInt64(4, value);
  @$pb.TagNumber(5)
  $core.bool hasTimestamp() => $_has(4);
  @$pb.TagNumber(5)
  void clearTimestamp() => $_clearField(5);
}

class EncryptedContent_Media extends $pb.GeneratedMessage {
  factory EncryptedContent_Media({
    $core.String? senderMessageId,
    EncryptedContent_Media_Type? type,
    $fixnum.Int64? displayLimitInMilliseconds,
    $core.bool? requiresAuthentication,
    $fixnum.Int64? timestamp,
    $core.String? quoteMessageId,
    $core.List<$core.int>? downloadToken,
    $core.List<$core.int>? encryptionKey,
    $core.List<$core.int>? encryptionMac,
    $core.List<$core.int>? encryptionNonce,
    $core.List<$core.int>? additionalMessageData,
  }) {
    final result = create();
    if (senderMessageId != null) result.senderMessageId = senderMessageId;
    if (type != null) result.type = type;
    if (displayLimitInMilliseconds != null)
      result.displayLimitInMilliseconds = displayLimitInMilliseconds;
    if (requiresAuthentication != null)
      result.requiresAuthentication = requiresAuthentication;
    if (timestamp != null) result.timestamp = timestamp;
    if (quoteMessageId != null) result.quoteMessageId = quoteMessageId;
    if (downloadToken != null) result.downloadToken = downloadToken;
    if (encryptionKey != null) result.encryptionKey = encryptionKey;
    if (encryptionMac != null) result.encryptionMac = encryptionMac;
    if (encryptionNonce != null) result.encryptionNonce = encryptionNonce;
    if (additionalMessageData != null)
      result.additionalMessageData = additionalMessageData;
    return result;
  }

  EncryptedContent_Media._();

  factory EncryptedContent_Media.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_Media.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.Media',
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'senderMessageId')
    ..aE<EncryptedContent_Media_Type>(2, _omitFieldNames ? '' : 'type',
        enumValues: EncryptedContent_Media_Type.values)
    ..aInt64(3, _omitFieldNames ? '' : 'displayLimitInMilliseconds')
    ..aOB(4, _omitFieldNames ? '' : 'requiresAuthentication')
    ..aInt64(5, _omitFieldNames ? '' : 'timestamp')
    ..aOS(6, _omitFieldNames ? '' : 'quoteMessageId')
    ..a<$core.List<$core.int>>(
        7, _omitFieldNames ? '' : 'downloadToken', $pb.PbFieldType.OY)
    ..a<$core.List<$core.int>>(
        8, _omitFieldNames ? '' : 'encryptionKey', $pb.PbFieldType.OY)
    ..a<$core.List<$core.int>>(
        9, _omitFieldNames ? '' : 'encryptionMac', $pb.PbFieldType.OY)
    ..a<$core.List<$core.int>>(
        10, _omitFieldNames ? '' : 'encryptionNonce', $pb.PbFieldType.OY)
    ..a<$core.List<$core.int>>(
        11, _omitFieldNames ? '' : 'additionalMessageData', $pb.PbFieldType.OY)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_Media clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_Media copyWith(
          void Function(EncryptedContent_Media) updates) =>
      super.copyWith((message) => updates(message as EncryptedContent_Media))
          as EncryptedContent_Media;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_Media create() => EncryptedContent_Media._();
  @$core.override
  EncryptedContent_Media createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_Media getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_Media>(create);
  static EncryptedContent_Media? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get senderMessageId => $_getSZ(0);
  @$pb.TagNumber(1)
  set senderMessageId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasSenderMessageId() => $_has(0);
  @$pb.TagNumber(1)
  void clearSenderMessageId() => $_clearField(1);

  @$pb.TagNumber(2)
  EncryptedContent_Media_Type get type => $_getN(1);
  @$pb.TagNumber(2)
  set type(EncryptedContent_Media_Type value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasType() => $_has(1);
  @$pb.TagNumber(2)
  void clearType() => $_clearField(2);

  @$pb.TagNumber(3)
  $fixnum.Int64 get displayLimitInMilliseconds => $_getI64(2);
  @$pb.TagNumber(3)
  set displayLimitInMilliseconds($fixnum.Int64 value) => $_setInt64(2, value);
  @$pb.TagNumber(3)
  $core.bool hasDisplayLimitInMilliseconds() => $_has(2);
  @$pb.TagNumber(3)
  void clearDisplayLimitInMilliseconds() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.bool get requiresAuthentication => $_getBF(3);
  @$pb.TagNumber(4)
  set requiresAuthentication($core.bool value) => $_setBool(3, value);
  @$pb.TagNumber(4)
  $core.bool hasRequiresAuthentication() => $_has(3);
  @$pb.TagNumber(4)
  void clearRequiresAuthentication() => $_clearField(4);

  @$pb.TagNumber(5)
  $fixnum.Int64 get timestamp => $_getI64(4);
  @$pb.TagNumber(5)
  set timestamp($fixnum.Int64 value) => $_setInt64(4, value);
  @$pb.TagNumber(5)
  $core.bool hasTimestamp() => $_has(4);
  @$pb.TagNumber(5)
  void clearTimestamp() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.String get quoteMessageId => $_getSZ(5);
  @$pb.TagNumber(6)
  set quoteMessageId($core.String value) => $_setString(5, value);
  @$pb.TagNumber(6)
  $core.bool hasQuoteMessageId() => $_has(5);
  @$pb.TagNumber(6)
  void clearQuoteMessageId() => $_clearField(6);

  @$pb.TagNumber(7)
  $core.List<$core.int> get downloadToken => $_getN(6);
  @$pb.TagNumber(7)
  set downloadToken($core.List<$core.int> value) => $_setBytes(6, value);
  @$pb.TagNumber(7)
  $core.bool hasDownloadToken() => $_has(6);
  @$pb.TagNumber(7)
  void clearDownloadToken() => $_clearField(7);

  @$pb.TagNumber(8)
  $core.List<$core.int> get encryptionKey => $_getN(7);
  @$pb.TagNumber(8)
  set encryptionKey($core.List<$core.int> value) => $_setBytes(7, value);
  @$pb.TagNumber(8)
  $core.bool hasEncryptionKey() => $_has(7);
  @$pb.TagNumber(8)
  void clearEncryptionKey() => $_clearField(8);

  @$pb.TagNumber(9)
  $core.List<$core.int> get encryptionMac => $_getN(8);
  @$pb.TagNumber(9)
  set encryptionMac($core.List<$core.int> value) => $_setBytes(8, value);
  @$pb.TagNumber(9)
  $core.bool hasEncryptionMac() => $_has(8);
  @$pb.TagNumber(9)
  void clearEncryptionMac() => $_clearField(9);

  @$pb.TagNumber(10)
  $core.List<$core.int> get encryptionNonce => $_getN(9);
  @$pb.TagNumber(10)
  set encryptionNonce($core.List<$core.int> value) => $_setBytes(9, value);
  @$pb.TagNumber(10)
  $core.bool hasEncryptionNonce() => $_has(9);
  @$pb.TagNumber(10)
  void clearEncryptionNonce() => $_clearField(10);

  @$pb.TagNumber(11)
  $core.List<$core.int> get additionalMessageData => $_getN(10);
  @$pb.TagNumber(11)
  set additionalMessageData($core.List<$core.int> value) =>
      $_setBytes(10, value);
  @$pb.TagNumber(11)
  $core.bool hasAdditionalMessageData() => $_has(10);
  @$pb.TagNumber(11)
  void clearAdditionalMessageData() => $_clearField(11);
}

class EncryptedContent_MediaUpdate extends $pb.GeneratedMessage {
  factory EncryptedContent_MediaUpdate({
    EncryptedContent_MediaUpdate_Type? type,
    $core.String? targetMessageId,
  }) {
    final result = create();
    if (type != null) result.type = type;
    if (targetMessageId != null) result.targetMessageId = targetMessageId;
    return result;
  }

  EncryptedContent_MediaUpdate._();

  factory EncryptedContent_MediaUpdate.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_MediaUpdate.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.MediaUpdate',
      createEmptyInstance: create)
    ..aE<EncryptedContent_MediaUpdate_Type>(1, _omitFieldNames ? '' : 'type',
        enumValues: EncryptedContent_MediaUpdate_Type.values)
    ..aOS(2, _omitFieldNames ? '' : 'targetMessageId')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_MediaUpdate clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_MediaUpdate copyWith(
          void Function(EncryptedContent_MediaUpdate) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_MediaUpdate))
          as EncryptedContent_MediaUpdate;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_MediaUpdate create() =>
      EncryptedContent_MediaUpdate._();
  @$core.override
  EncryptedContent_MediaUpdate createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_MediaUpdate getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_MediaUpdate>(create);
  static EncryptedContent_MediaUpdate? _defaultInstance;

  @$pb.TagNumber(1)
  EncryptedContent_MediaUpdate_Type get type => $_getN(0);
  @$pb.TagNumber(1)
  set type(EncryptedContent_MediaUpdate_Type value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasType() => $_has(0);
  @$pb.TagNumber(1)
  void clearType() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get targetMessageId => $_getSZ(1);
  @$pb.TagNumber(2)
  set targetMessageId($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasTargetMessageId() => $_has(1);
  @$pb.TagNumber(2)
  void clearTargetMessageId() => $_clearField(2);
}

class EncryptedContent_ContactRequest extends $pb.GeneratedMessage {
  factory EncryptedContent_ContactRequest({
    EncryptedContent_ContactRequest_Type? type,
  }) {
    final result = create();
    if (type != null) result.type = type;
    return result;
  }

  EncryptedContent_ContactRequest._();

  factory EncryptedContent_ContactRequest.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_ContactRequest.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.ContactRequest',
      createEmptyInstance: create)
    ..aE<EncryptedContent_ContactRequest_Type>(1, _omitFieldNames ? '' : 'type',
        enumValues: EncryptedContent_ContactRequest_Type.values)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_ContactRequest clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_ContactRequest copyWith(
          void Function(EncryptedContent_ContactRequest) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_ContactRequest))
          as EncryptedContent_ContactRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_ContactRequest create() =>
      EncryptedContent_ContactRequest._();
  @$core.override
  EncryptedContent_ContactRequest createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_ContactRequest getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_ContactRequest>(
          create);
  static EncryptedContent_ContactRequest? _defaultInstance;

  @$pb.TagNumber(1)
  EncryptedContent_ContactRequest_Type get type => $_getN(0);
  @$pb.TagNumber(1)
  set type(EncryptedContent_ContactRequest_Type value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasType() => $_has(0);
  @$pb.TagNumber(1)
  void clearType() => $_clearField(1);
}

class EncryptedContent_ContactUpdate extends $pb.GeneratedMessage {
  factory EncryptedContent_ContactUpdate({
    EncryptedContent_ContactUpdate_Type? type,
    $core.List<$core.int>? avatarSvgCompressed,
    $core.String? username,
    $core.String? displayName,
  }) {
    final result = create();
    if (type != null) result.type = type;
    if (avatarSvgCompressed != null)
      result.avatarSvgCompressed = avatarSvgCompressed;
    if (username != null) result.username = username;
    if (displayName != null) result.displayName = displayName;
    return result;
  }

  EncryptedContent_ContactUpdate._();

  factory EncryptedContent_ContactUpdate.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_ContactUpdate.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.ContactUpdate',
      createEmptyInstance: create)
    ..aE<EncryptedContent_ContactUpdate_Type>(1, _omitFieldNames ? '' : 'type',
        enumValues: EncryptedContent_ContactUpdate_Type.values)
    ..a<$core.List<$core.int>>(
        2, _omitFieldNames ? '' : 'avatarSvgCompressed', $pb.PbFieldType.OY)
    ..aOS(3, _omitFieldNames ? '' : 'username')
    ..aOS(4, _omitFieldNames ? '' : 'displayName')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_ContactUpdate clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_ContactUpdate copyWith(
          void Function(EncryptedContent_ContactUpdate) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_ContactUpdate))
          as EncryptedContent_ContactUpdate;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_ContactUpdate create() =>
      EncryptedContent_ContactUpdate._();
  @$core.override
  EncryptedContent_ContactUpdate createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_ContactUpdate getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_ContactUpdate>(create);
  static EncryptedContent_ContactUpdate? _defaultInstance;

  @$pb.TagNumber(1)
  EncryptedContent_ContactUpdate_Type get type => $_getN(0);
  @$pb.TagNumber(1)
  set type(EncryptedContent_ContactUpdate_Type value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasType() => $_has(0);
  @$pb.TagNumber(1)
  void clearType() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.List<$core.int> get avatarSvgCompressed => $_getN(1);
  @$pb.TagNumber(2)
  set avatarSvgCompressed($core.List<$core.int> value) => $_setBytes(1, value);
  @$pb.TagNumber(2)
  $core.bool hasAvatarSvgCompressed() => $_has(1);
  @$pb.TagNumber(2)
  void clearAvatarSvgCompressed() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get username => $_getSZ(2);
  @$pb.TagNumber(3)
  set username($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasUsername() => $_has(2);
  @$pb.TagNumber(3)
  void clearUsername() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get displayName => $_getSZ(3);
  @$pb.TagNumber(4)
  set displayName($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasDisplayName() => $_has(3);
  @$pb.TagNumber(4)
  void clearDisplayName() => $_clearField(4);
}

class EncryptedContent_PushKeys extends $pb.GeneratedMessage {
  factory EncryptedContent_PushKeys({
    EncryptedContent_PushKeys_Type? type,
    $fixnum.Int64? keyId,
    $core.List<$core.int>? key,
    $fixnum.Int64? createdAt,
  }) {
    final result = create();
    if (type != null) result.type = type;
    if (keyId != null) result.keyId = keyId;
    if (key != null) result.key = key;
    if (createdAt != null) result.createdAt = createdAt;
    return result;
  }

  EncryptedContent_PushKeys._();

  factory EncryptedContent_PushKeys.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_PushKeys.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.PushKeys',
      createEmptyInstance: create)
    ..aE<EncryptedContent_PushKeys_Type>(1, _omitFieldNames ? '' : 'type',
        enumValues: EncryptedContent_PushKeys_Type.values)
    ..aInt64(2, _omitFieldNames ? '' : 'keyId')
    ..a<$core.List<$core.int>>(
        3, _omitFieldNames ? '' : 'key', $pb.PbFieldType.OY)
    ..aInt64(4, _omitFieldNames ? '' : 'createdAt')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_PushKeys clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_PushKeys copyWith(
          void Function(EncryptedContent_PushKeys) updates) =>
      super.copyWith((message) => updates(message as EncryptedContent_PushKeys))
          as EncryptedContent_PushKeys;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_PushKeys create() => EncryptedContent_PushKeys._();
  @$core.override
  EncryptedContent_PushKeys createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_PushKeys getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_PushKeys>(create);
  static EncryptedContent_PushKeys? _defaultInstance;

  @$pb.TagNumber(1)
  EncryptedContent_PushKeys_Type get type => $_getN(0);
  @$pb.TagNumber(1)
  set type(EncryptedContent_PushKeys_Type value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasType() => $_has(0);
  @$pb.TagNumber(1)
  void clearType() => $_clearField(1);

  @$pb.TagNumber(2)
  $fixnum.Int64 get keyId => $_getI64(1);
  @$pb.TagNumber(2)
  set keyId($fixnum.Int64 value) => $_setInt64(1, value);
  @$pb.TagNumber(2)
  $core.bool hasKeyId() => $_has(1);
  @$pb.TagNumber(2)
  void clearKeyId() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.List<$core.int> get key => $_getN(2);
  @$pb.TagNumber(3)
  set key($core.List<$core.int> value) => $_setBytes(2, value);
  @$pb.TagNumber(3)
  $core.bool hasKey() => $_has(2);
  @$pb.TagNumber(3)
  void clearKey() => $_clearField(3);

  @$pb.TagNumber(4)
  $fixnum.Int64 get createdAt => $_getI64(3);
  @$pb.TagNumber(4)
  set createdAt($fixnum.Int64 value) => $_setInt64(3, value);
  @$pb.TagNumber(4)
  $core.bool hasCreatedAt() => $_has(3);
  @$pb.TagNumber(4)
  void clearCreatedAt() => $_clearField(4);
}

class EncryptedContent_FlameSync extends $pb.GeneratedMessage {
  factory EncryptedContent_FlameSync({
    $fixnum.Int64? flameCounter,
    $fixnum.Int64? lastFlameCounterChange,
    $core.bool? bestFriend,
    $core.bool? forceUpdate,
  }) {
    final result = create();
    if (flameCounter != null) result.flameCounter = flameCounter;
    if (lastFlameCounterChange != null)
      result.lastFlameCounterChange = lastFlameCounterChange;
    if (bestFriend != null) result.bestFriend = bestFriend;
    if (forceUpdate != null) result.forceUpdate = forceUpdate;
    return result;
  }

  EncryptedContent_FlameSync._();

  factory EncryptedContent_FlameSync.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_FlameSync.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.FlameSync',
      createEmptyInstance: create)
    ..aInt64(1, _omitFieldNames ? '' : 'flameCounter')
    ..aInt64(2, _omitFieldNames ? '' : 'lastFlameCounterChange')
    ..aOB(3, _omitFieldNames ? '' : 'bestFriend')
    ..aOB(4, _omitFieldNames ? '' : 'forceUpdate')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_FlameSync clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_FlameSync copyWith(
          void Function(EncryptedContent_FlameSync) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_FlameSync))
          as EncryptedContent_FlameSync;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_FlameSync create() => EncryptedContent_FlameSync._();
  @$core.override
  EncryptedContent_FlameSync createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_FlameSync getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_FlameSync>(create);
  static EncryptedContent_FlameSync? _defaultInstance;

  @$pb.TagNumber(1)
  $fixnum.Int64 get flameCounter => $_getI64(0);
  @$pb.TagNumber(1)
  set flameCounter($fixnum.Int64 value) => $_setInt64(0, value);
  @$pb.TagNumber(1)
  $core.bool hasFlameCounter() => $_has(0);
  @$pb.TagNumber(1)
  void clearFlameCounter() => $_clearField(1);

  @$pb.TagNumber(2)
  $fixnum.Int64 get lastFlameCounterChange => $_getI64(1);
  @$pb.TagNumber(2)
  set lastFlameCounterChange($fixnum.Int64 value) => $_setInt64(1, value);
  @$pb.TagNumber(2)
  $core.bool hasLastFlameCounterChange() => $_has(1);
  @$pb.TagNumber(2)
  void clearLastFlameCounterChange() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.bool get bestFriend => $_getBF(2);
  @$pb.TagNumber(3)
  set bestFriend($core.bool value) => $_setBool(2, value);
  @$pb.TagNumber(3)
  $core.bool hasBestFriend() => $_has(2);
  @$pb.TagNumber(3)
  void clearBestFriend() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.bool get forceUpdate => $_getBF(3);
  @$pb.TagNumber(4)
  set forceUpdate($core.bool value) => $_setBool(3, value);
  @$pb.TagNumber(4)
  $core.bool hasForceUpdate() => $_has(3);
  @$pb.TagNumber(4)
  void clearForceUpdate() => $_clearField(4);
}

class EncryptedContent_TypingIndicator extends $pb.GeneratedMessage {
  factory EncryptedContent_TypingIndicator({
    $core.bool? isTyping,
    $fixnum.Int64? createdAt,
  }) {
    final result = create();
    if (isTyping != null) result.isTyping = isTyping;
    if (createdAt != null) result.createdAt = createdAt;
    return result;
  }

  EncryptedContent_TypingIndicator._();

  factory EncryptedContent_TypingIndicator.fromBuffer(
          $core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_TypingIndicator.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.TypingIndicator',
      createEmptyInstance: create)
    ..aOB(1, _omitFieldNames ? '' : 'isTyping')
    ..aInt64(2, _omitFieldNames ? '' : 'createdAt')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_TypingIndicator clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_TypingIndicator copyWith(
          void Function(EncryptedContent_TypingIndicator) updates) =>
      super.copyWith(
              (message) => updates(message as EncryptedContent_TypingIndicator))
          as EncryptedContent_TypingIndicator;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_TypingIndicator create() =>
      EncryptedContent_TypingIndicator._();
  @$core.override
  EncryptedContent_TypingIndicator createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_TypingIndicator getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent_TypingIndicator>(
          create);
  static EncryptedContent_TypingIndicator? _defaultInstance;

  @$pb.TagNumber(1)
  $core.bool get isTyping => $_getBF(0);
  @$pb.TagNumber(1)
  set isTyping($core.bool value) => $_setBool(0, value);
  @$pb.TagNumber(1)
  $core.bool hasIsTyping() => $_has(0);
  @$pb.TagNumber(1)
  void clearIsTyping() => $_clearField(1);

  @$pb.TagNumber(2)
  $fixnum.Int64 get createdAt => $_getI64(1);
  @$pb.TagNumber(2)
  set createdAt($fixnum.Int64 value) => $_setInt64(1, value);
  @$pb.TagNumber(2)
  $core.bool hasCreatedAt() => $_has(1);
  @$pb.TagNumber(2)
  void clearCreatedAt() => $_clearField(2);
}

class EncryptedContent_UserDiscoveryRequest extends $pb.GeneratedMessage {
  factory EncryptedContent_UserDiscoveryRequest({
    $core.List<$core.int>? currentVersion,
  }) {
    final result = create();
    if (currentVersion != null) result.currentVersion = currentVersion;
    return result;
  }

  EncryptedContent_UserDiscoveryRequest._();

  factory EncryptedContent_UserDiscoveryRequest.fromBuffer(
          $core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_UserDiscoveryRequest.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.UserDiscoveryRequest',
      createEmptyInstance: create)
    ..a<$core.List<$core.int>>(
        1, _omitFieldNames ? '' : 'currentVersion', $pb.PbFieldType.OY)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_UserDiscoveryRequest clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_UserDiscoveryRequest copyWith(
          void Function(EncryptedContent_UserDiscoveryRequest) updates) =>
      super.copyWith((message) =>
              updates(message as EncryptedContent_UserDiscoveryRequest))
          as EncryptedContent_UserDiscoveryRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_UserDiscoveryRequest create() =>
      EncryptedContent_UserDiscoveryRequest._();
  @$core.override
  EncryptedContent_UserDiscoveryRequest createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_UserDiscoveryRequest getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
          EncryptedContent_UserDiscoveryRequest>(create);
  static EncryptedContent_UserDiscoveryRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $core.List<$core.int> get currentVersion => $_getN(0);
  @$pb.TagNumber(1)
  set currentVersion($core.List<$core.int> value) => $_setBytes(0, value);
  @$pb.TagNumber(1)
  $core.bool hasCurrentVersion() => $_has(0);
  @$pb.TagNumber(1)
  void clearCurrentVersion() => $_clearField(1);
}

class EncryptedContent_UserDiscoveryUpdate extends $pb.GeneratedMessage {
  factory EncryptedContent_UserDiscoveryUpdate({
    $core.Iterable<$core.List<$core.int>>? messages,
  }) {
    final result = create();
    if (messages != null) result.messages.addAll(messages);
    return result;
  }

  EncryptedContent_UserDiscoveryUpdate._();

  factory EncryptedContent_UserDiscoveryUpdate.fromBuffer(
          $core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_UserDiscoveryUpdate.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.UserDiscoveryUpdate',
      createEmptyInstance: create)
    ..p<$core.List<$core.int>>(
        1, _omitFieldNames ? '' : 'messages', $pb.PbFieldType.PY)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_UserDiscoveryUpdate clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_UserDiscoveryUpdate copyWith(
          void Function(EncryptedContent_UserDiscoveryUpdate) updates) =>
      super.copyWith((message) =>
              updates(message as EncryptedContent_UserDiscoveryUpdate))
          as EncryptedContent_UserDiscoveryUpdate;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_UserDiscoveryUpdate create() =>
      EncryptedContent_UserDiscoveryUpdate._();
  @$core.override
  EncryptedContent_UserDiscoveryUpdate createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_UserDiscoveryUpdate getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
          EncryptedContent_UserDiscoveryUpdate>(create);
  static EncryptedContent_UserDiscoveryUpdate? _defaultInstance;

  @$pb.TagNumber(1)
  $pb.PbList<$core.List<$core.int>> get messages => $_getList(0);
}

class EncryptedContent_KeyVerificationProof extends $pb.GeneratedMessage {
  factory EncryptedContent_KeyVerificationProof({
    $core.List<$core.int>? calculatedMac,
  }) {
    final result = create();
    if (calculatedMac != null) result.calculatedMac = calculatedMac;
    return result;
  }

  EncryptedContent_KeyVerificationProof._();

  factory EncryptedContent_KeyVerificationProof.fromBuffer(
          $core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_KeyVerificationProof.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.KeyVerificationProof',
      createEmptyInstance: create)
    ..a<$core.List<$core.int>>(
        1, _omitFieldNames ? '' : 'calculatedMac', $pb.PbFieldType.OY)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_KeyVerificationProof clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_KeyVerificationProof copyWith(
          void Function(EncryptedContent_KeyVerificationProof) updates) =>
      super.copyWith((message) =>
              updates(message as EncryptedContent_KeyVerificationProof))
          as EncryptedContent_KeyVerificationProof;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_KeyVerificationProof create() =>
      EncryptedContent_KeyVerificationProof._();
  @$core.override
  EncryptedContent_KeyVerificationProof createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_KeyVerificationProof getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
          EncryptedContent_KeyVerificationProof>(create);
  static EncryptedContent_KeyVerificationProof? _defaultInstance;

  @$pb.TagNumber(1)
  $core.List<$core.int> get calculatedMac => $_getN(0);
  @$pb.TagNumber(1)
  set calculatedMac($core.List<$core.int> value) => $_setBytes(0, value);
  @$pb.TagNumber(1)
  $core.bool hasCalculatedMac() => $_has(0);
  @$pb.TagNumber(1)
  void clearCalculatedMac() => $_clearField(1);
}

class EncryptedContent_PasswordLessRecovery extends $pb.GeneratedMessage {
  factory EncryptedContent_PasswordLessRecovery({
    $core.List<$core.int>? recoverySecretShare,
    $core.bool? delete,
    $fixnum.Int64? threshold,
  }) {
    final result = create();
    if (recoverySecretShare != null)
      result.recoverySecretShare = recoverySecretShare;
    if (delete != null) result.delete = delete;
    if (threshold != null) result.threshold = threshold;
    return result;
  }

  EncryptedContent_PasswordLessRecovery._();

  factory EncryptedContent_PasswordLessRecovery.fromBuffer(
          $core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_PasswordLessRecovery.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.PasswordLessRecovery',
      createEmptyInstance: create)
    ..a<$core.List<$core.int>>(
        1, _omitFieldNames ? '' : 'recoverySecretShare', $pb.PbFieldType.OY,
        protoName: 'recoverySecretShare')
    ..aOB(2, _omitFieldNames ? '' : 'delete')
    ..aInt64(3, _omitFieldNames ? '' : 'threshold')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_PasswordLessRecovery clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_PasswordLessRecovery copyWith(
          void Function(EncryptedContent_PasswordLessRecovery) updates) =>
      super.copyWith((message) =>
              updates(message as EncryptedContent_PasswordLessRecovery))
          as EncryptedContent_PasswordLessRecovery;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_PasswordLessRecovery create() =>
      EncryptedContent_PasswordLessRecovery._();
  @$core.override
  EncryptedContent_PasswordLessRecovery createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_PasswordLessRecovery getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
          EncryptedContent_PasswordLessRecovery>(create);
  static EncryptedContent_PasswordLessRecovery? _defaultInstance;

  @$pb.TagNumber(1)
  $core.List<$core.int> get recoverySecretShare => $_getN(0);
  @$pb.TagNumber(1)
  set recoverySecretShare($core.List<$core.int> value) => $_setBytes(0, value);
  @$pb.TagNumber(1)
  $core.bool hasRecoverySecretShare() => $_has(0);
  @$pb.TagNumber(1)
  void clearRecoverySecretShare() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.bool get delete => $_getBF(1);
  @$pb.TagNumber(2)
  set delete($core.bool value) => $_setBool(1, value);
  @$pb.TagNumber(2)
  $core.bool hasDelete() => $_has(1);
  @$pb.TagNumber(2)
  void clearDelete() => $_clearField(2);

  @$pb.TagNumber(3)
  $fixnum.Int64 get threshold => $_getI64(2);
  @$pb.TagNumber(3)
  set threshold($fixnum.Int64 value) => $_setInt64(2, value);
  @$pb.TagNumber(3)
  $core.bool hasThreshold() => $_has(2);
  @$pb.TagNumber(3)
  void clearThreshold() => $_clearField(3);
}

class EncryptedContent_PasswordLessRecoveryHeartbeat
    extends $pb.GeneratedMessage {
  factory EncryptedContent_PasswordLessRecoveryHeartbeat({
    $core.List<$core.int>? hash,
  }) {
    final result = create();
    if (hash != null) result.hash = hash;
    return result;
  }

  EncryptedContent_PasswordLessRecoveryHeartbeat._();

  factory EncryptedContent_PasswordLessRecoveryHeartbeat.fromBuffer(
          $core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent_PasswordLessRecoveryHeartbeat.fromJson(
          $core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent.PasswordLessRecoveryHeartbeat',
      createEmptyInstance: create)
    ..a<$core.List<$core.int>>(
        1, _omitFieldNames ? '' : 'hash', $pb.PbFieldType.OY)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_PasswordLessRecoveryHeartbeat clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent_PasswordLessRecoveryHeartbeat copyWith(
          void Function(EncryptedContent_PasswordLessRecoveryHeartbeat)
              updates) =>
      super.copyWith((message) => updates(
              message as EncryptedContent_PasswordLessRecoveryHeartbeat))
          as EncryptedContent_PasswordLessRecoveryHeartbeat;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent_PasswordLessRecoveryHeartbeat create() =>
      EncryptedContent_PasswordLessRecoveryHeartbeat._();
  @$core.override
  EncryptedContent_PasswordLessRecoveryHeartbeat createEmptyInstance() =>
      create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent_PasswordLessRecoveryHeartbeat getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<
          EncryptedContent_PasswordLessRecoveryHeartbeat>(create);
  static EncryptedContent_PasswordLessRecoveryHeartbeat? _defaultInstance;

  @$pb.TagNumber(1)
  $core.List<$core.int> get hash => $_getN(0);
  @$pb.TagNumber(1)
  set hash($core.List<$core.int> value) => $_setBytes(0, value);
  @$pb.TagNumber(1)
  $core.bool hasHash() => $_has(0);
  @$pb.TagNumber(1)
  void clearHash() => $_clearField(1);
}

class EncryptedContent extends $pb.GeneratedMessage {
  factory EncryptedContent({
    $core.String? groupId,
    $core.bool? isDirectChat,
    $fixnum.Int64? senderProfileCounter,
    EncryptedContent_MessageUpdate? messageUpdate,
    EncryptedContent_Media? media,
    EncryptedContent_MediaUpdate? mediaUpdate,
    EncryptedContent_ContactUpdate? contactUpdate,
    EncryptedContent_ContactRequest? contactRequest,
    EncryptedContent_FlameSync? flameSync,
    EncryptedContent_PushKeys? pushKeys,
    EncryptedContent_Reaction? reaction,
    EncryptedContent_TextMessage? textMessage,
    EncryptedContent_GroupCreate? groupCreate,
    EncryptedContent_GroupJoin? groupJoin,
    EncryptedContent_GroupUpdate? groupUpdate,
    EncryptedContent_ResendGroupPublicKey? resendGroupPublicKey,
    EncryptedContent_ErrorMessages? errorMessages,
    EncryptedContent_AdditionalDataMessage? additionalDataMessage,
    EncryptedContent_TypingIndicator? typingIndicator,
    $core.List<$core.int>? senderUserDiscoveryVersion,
    EncryptedContent_UserDiscoveryRequest? userDiscoveryRequest,
    EncryptedContent_UserDiscoveryUpdate? userDiscoveryUpdate,
    EncryptedContent_KeyVerificationProof? keyVerificationProof,
    $core.bool? askForFriendPromotions,
    EncryptedContent_PasswordLessRecovery? passwordlessRecovery,
    EncryptedContent_PasswordLessRecoveryHeartbeat?
        passwordlessRecoveryHeartbeat,
  }) {
    final result = create();
    if (groupId != null) result.groupId = groupId;
    if (isDirectChat != null) result.isDirectChat = isDirectChat;
    if (senderProfileCounter != null)
      result.senderProfileCounter = senderProfileCounter;
    if (messageUpdate != null) result.messageUpdate = messageUpdate;
    if (media != null) result.media = media;
    if (mediaUpdate != null) result.mediaUpdate = mediaUpdate;
    if (contactUpdate != null) result.contactUpdate = contactUpdate;
    if (contactRequest != null) result.contactRequest = contactRequest;
    if (flameSync != null) result.flameSync = flameSync;
    if (pushKeys != null) result.pushKeys = pushKeys;
    if (reaction != null) result.reaction = reaction;
    if (textMessage != null) result.textMessage = textMessage;
    if (groupCreate != null) result.groupCreate = groupCreate;
    if (groupJoin != null) result.groupJoin = groupJoin;
    if (groupUpdate != null) result.groupUpdate = groupUpdate;
    if (resendGroupPublicKey != null)
      result.resendGroupPublicKey = resendGroupPublicKey;
    if (errorMessages != null) result.errorMessages = errorMessages;
    if (additionalDataMessage != null)
      result.additionalDataMessage = additionalDataMessage;
    if (typingIndicator != null) result.typingIndicator = typingIndicator;
    if (senderUserDiscoveryVersion != null)
      result.senderUserDiscoveryVersion = senderUserDiscoveryVersion;
    if (userDiscoveryRequest != null)
      result.userDiscoveryRequest = userDiscoveryRequest;
    if (userDiscoveryUpdate != null)
      result.userDiscoveryUpdate = userDiscoveryUpdate;
    if (keyVerificationProof != null)
      result.keyVerificationProof = keyVerificationProof;
    if (askForFriendPromotions != null)
      result.askForFriendPromotions = askForFriendPromotions;
    if (passwordlessRecovery != null)
      result.passwordlessRecovery = passwordlessRecovery;
    if (passwordlessRecoveryHeartbeat != null)
      result.passwordlessRecoveryHeartbeat = passwordlessRecoveryHeartbeat;
    return result;
  }

  EncryptedContent._();

  factory EncryptedContent.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EncryptedContent.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EncryptedContent',
      createEmptyInstance: create)
    ..aOS(2, _omitFieldNames ? '' : 'groupId')
    ..aOB(3, _omitFieldNames ? '' : 'isDirectChat')
    ..aInt64(4, _omitFieldNames ? '' : 'senderProfileCounter')
    ..aOM<EncryptedContent_MessageUpdate>(
        5, _omitFieldNames ? '' : 'messageUpdate',
        subBuilder: EncryptedContent_MessageUpdate.create)
    ..aOM<EncryptedContent_Media>(6, _omitFieldNames ? '' : 'media',
        subBuilder: EncryptedContent_Media.create)
    ..aOM<EncryptedContent_MediaUpdate>(7, _omitFieldNames ? '' : 'mediaUpdate',
        subBuilder: EncryptedContent_MediaUpdate.create)
    ..aOM<EncryptedContent_ContactUpdate>(
        8, _omitFieldNames ? '' : 'contactUpdate',
        subBuilder: EncryptedContent_ContactUpdate.create)
    ..aOM<EncryptedContent_ContactRequest>(
        9, _omitFieldNames ? '' : 'contactRequest',
        subBuilder: EncryptedContent_ContactRequest.create)
    ..aOM<EncryptedContent_FlameSync>(10, _omitFieldNames ? '' : 'flameSync',
        subBuilder: EncryptedContent_FlameSync.create)
    ..aOM<EncryptedContent_PushKeys>(11, _omitFieldNames ? '' : 'pushKeys',
        subBuilder: EncryptedContent_PushKeys.create)
    ..aOM<EncryptedContent_Reaction>(12, _omitFieldNames ? '' : 'reaction',
        subBuilder: EncryptedContent_Reaction.create)
    ..aOM<EncryptedContent_TextMessage>(
        13, _omitFieldNames ? '' : 'textMessage',
        subBuilder: EncryptedContent_TextMessage.create)
    ..aOM<EncryptedContent_GroupCreate>(
        14, _omitFieldNames ? '' : 'groupCreate',
        subBuilder: EncryptedContent_GroupCreate.create)
    ..aOM<EncryptedContent_GroupJoin>(15, _omitFieldNames ? '' : 'groupJoin',
        subBuilder: EncryptedContent_GroupJoin.create)
    ..aOM<EncryptedContent_GroupUpdate>(
        16, _omitFieldNames ? '' : 'groupUpdate',
        subBuilder: EncryptedContent_GroupUpdate.create)
    ..aOM<EncryptedContent_ResendGroupPublicKey>(
        17, _omitFieldNames ? '' : 'resendGroupPublicKey',
        subBuilder: EncryptedContent_ResendGroupPublicKey.create)
    ..aOM<EncryptedContent_ErrorMessages>(
        18, _omitFieldNames ? '' : 'errorMessages',
        subBuilder: EncryptedContent_ErrorMessages.create)
    ..aOM<EncryptedContent_AdditionalDataMessage>(
        19, _omitFieldNames ? '' : 'additionalDataMessage',
        subBuilder: EncryptedContent_AdditionalDataMessage.create)
    ..aOM<EncryptedContent_TypingIndicator>(
        20, _omitFieldNames ? '' : 'typingIndicator',
        subBuilder: EncryptedContent_TypingIndicator.create)
    ..a<$core.List<$core.int>>(21,
        _omitFieldNames ? '' : 'senderUserDiscoveryVersion', $pb.PbFieldType.OY)
    ..aOM<EncryptedContent_UserDiscoveryRequest>(
        22, _omitFieldNames ? '' : 'userDiscoveryRequest',
        subBuilder: EncryptedContent_UserDiscoveryRequest.create)
    ..aOM<EncryptedContent_UserDiscoveryUpdate>(
        23, _omitFieldNames ? '' : 'userDiscoveryUpdate',
        subBuilder: EncryptedContent_UserDiscoveryUpdate.create)
    ..aOM<EncryptedContent_KeyVerificationProof>(
        24, _omitFieldNames ? '' : 'keyVerificationProof',
        subBuilder: EncryptedContent_KeyVerificationProof.create)
    ..aOB(25, _omitFieldNames ? '' : 'askForFriendPromotions')
    ..aOM<EncryptedContent_PasswordLessRecovery>(
        26, _omitFieldNames ? '' : 'passwordlessRecovery',
        subBuilder: EncryptedContent_PasswordLessRecovery.create)
    ..aOM<EncryptedContent_PasswordLessRecoveryHeartbeat>(
        27, _omitFieldNames ? '' : 'passwordlessRecoveryHeartbeat',
        subBuilder: EncryptedContent_PasswordLessRecoveryHeartbeat.create)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EncryptedContent copyWith(void Function(EncryptedContent) updates) =>
      super.copyWith((message) => updates(message as EncryptedContent))
          as EncryptedContent;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EncryptedContent create() => EncryptedContent._();
  @$core.override
  EncryptedContent createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EncryptedContent getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EncryptedContent>(create);
  static EncryptedContent? _defaultInstance;

  @$pb.TagNumber(2)
  $core.String get groupId => $_getSZ(0);
  @$pb.TagNumber(2)
  set groupId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(2)
  $core.bool hasGroupId() => $_has(0);
  @$pb.TagNumber(2)
  void clearGroupId() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.bool get isDirectChat => $_getBF(1);
  @$pb.TagNumber(3)
  set isDirectChat($core.bool value) => $_setBool(1, value);
  @$pb.TagNumber(3)
  $core.bool hasIsDirectChat() => $_has(1);
  @$pb.TagNumber(3)
  void clearIsDirectChat() => $_clearField(3);

  /// / This can be added, so the receiver can check weather he is up to date with the current profile
  @$pb.TagNumber(4)
  $fixnum.Int64 get senderProfileCounter => $_getI64(2);
  @$pb.TagNumber(4)
  set senderProfileCounter($fixnum.Int64 value) => $_setInt64(2, value);
  @$pb.TagNumber(4)
  $core.bool hasSenderProfileCounter() => $_has(2);
  @$pb.TagNumber(4)
  void clearSenderProfileCounter() => $_clearField(4);

  @$pb.TagNumber(5)
  EncryptedContent_MessageUpdate get messageUpdate => $_getN(3);
  @$pb.TagNumber(5)
  set messageUpdate(EncryptedContent_MessageUpdate value) =>
      $_setField(5, value);
  @$pb.TagNumber(5)
  $core.bool hasMessageUpdate() => $_has(3);
  @$pb.TagNumber(5)
  void clearMessageUpdate() => $_clearField(5);
  @$pb.TagNumber(5)
  EncryptedContent_MessageUpdate ensureMessageUpdate() => $_ensure(3);

  @$pb.TagNumber(6)
  EncryptedContent_Media get media => $_getN(4);
  @$pb.TagNumber(6)
  set media(EncryptedContent_Media value) => $_setField(6, value);
  @$pb.TagNumber(6)
  $core.bool hasMedia() => $_has(4);
  @$pb.TagNumber(6)
  void clearMedia() => $_clearField(6);
  @$pb.TagNumber(6)
  EncryptedContent_Media ensureMedia() => $_ensure(4);

  @$pb.TagNumber(7)
  EncryptedContent_MediaUpdate get mediaUpdate => $_getN(5);
  @$pb.TagNumber(7)
  set mediaUpdate(EncryptedContent_MediaUpdate value) => $_setField(7, value);
  @$pb.TagNumber(7)
  $core.bool hasMediaUpdate() => $_has(5);
  @$pb.TagNumber(7)
  void clearMediaUpdate() => $_clearField(7);
  @$pb.TagNumber(7)
  EncryptedContent_MediaUpdate ensureMediaUpdate() => $_ensure(5);

  @$pb.TagNumber(8)
  EncryptedContent_ContactUpdate get contactUpdate => $_getN(6);
  @$pb.TagNumber(8)
  set contactUpdate(EncryptedContent_ContactUpdate value) =>
      $_setField(8, value);
  @$pb.TagNumber(8)
  $core.bool hasContactUpdate() => $_has(6);
  @$pb.TagNumber(8)
  void clearContactUpdate() => $_clearField(8);
  @$pb.TagNumber(8)
  EncryptedContent_ContactUpdate ensureContactUpdate() => $_ensure(6);

  @$pb.TagNumber(9)
  EncryptedContent_ContactRequest get contactRequest => $_getN(7);
  @$pb.TagNumber(9)
  set contactRequest(EncryptedContent_ContactRequest value) =>
      $_setField(9, value);
  @$pb.TagNumber(9)
  $core.bool hasContactRequest() => $_has(7);
  @$pb.TagNumber(9)
  void clearContactRequest() => $_clearField(9);
  @$pb.TagNumber(9)
  EncryptedContent_ContactRequest ensureContactRequest() => $_ensure(7);

  @$pb.TagNumber(10)
  EncryptedContent_FlameSync get flameSync => $_getN(8);
  @$pb.TagNumber(10)
  set flameSync(EncryptedContent_FlameSync value) => $_setField(10, value);
  @$pb.TagNumber(10)
  $core.bool hasFlameSync() => $_has(8);
  @$pb.TagNumber(10)
  void clearFlameSync() => $_clearField(10);
  @$pb.TagNumber(10)
  EncryptedContent_FlameSync ensureFlameSync() => $_ensure(8);

  @$pb.TagNumber(11)
  EncryptedContent_PushKeys get pushKeys => $_getN(9);
  @$pb.TagNumber(11)
  set pushKeys(EncryptedContent_PushKeys value) => $_setField(11, value);
  @$pb.TagNumber(11)
  $core.bool hasPushKeys() => $_has(9);
  @$pb.TagNumber(11)
  void clearPushKeys() => $_clearField(11);
  @$pb.TagNumber(11)
  EncryptedContent_PushKeys ensurePushKeys() => $_ensure(9);

  @$pb.TagNumber(12)
  EncryptedContent_Reaction get reaction => $_getN(10);
  @$pb.TagNumber(12)
  set reaction(EncryptedContent_Reaction value) => $_setField(12, value);
  @$pb.TagNumber(12)
  $core.bool hasReaction() => $_has(10);
  @$pb.TagNumber(12)
  void clearReaction() => $_clearField(12);
  @$pb.TagNumber(12)
  EncryptedContent_Reaction ensureReaction() => $_ensure(10);

  @$pb.TagNumber(13)
  EncryptedContent_TextMessage get textMessage => $_getN(11);
  @$pb.TagNumber(13)
  set textMessage(EncryptedContent_TextMessage value) => $_setField(13, value);
  @$pb.TagNumber(13)
  $core.bool hasTextMessage() => $_has(11);
  @$pb.TagNumber(13)
  void clearTextMessage() => $_clearField(13);
  @$pb.TagNumber(13)
  EncryptedContent_TextMessage ensureTextMessage() => $_ensure(11);

  @$pb.TagNumber(14)
  EncryptedContent_GroupCreate get groupCreate => $_getN(12);
  @$pb.TagNumber(14)
  set groupCreate(EncryptedContent_GroupCreate value) => $_setField(14, value);
  @$pb.TagNumber(14)
  $core.bool hasGroupCreate() => $_has(12);
  @$pb.TagNumber(14)
  void clearGroupCreate() => $_clearField(14);
  @$pb.TagNumber(14)
  EncryptedContent_GroupCreate ensureGroupCreate() => $_ensure(12);

  @$pb.TagNumber(15)
  EncryptedContent_GroupJoin get groupJoin => $_getN(13);
  @$pb.TagNumber(15)
  set groupJoin(EncryptedContent_GroupJoin value) => $_setField(15, value);
  @$pb.TagNumber(15)
  $core.bool hasGroupJoin() => $_has(13);
  @$pb.TagNumber(15)
  void clearGroupJoin() => $_clearField(15);
  @$pb.TagNumber(15)
  EncryptedContent_GroupJoin ensureGroupJoin() => $_ensure(13);

  @$pb.TagNumber(16)
  EncryptedContent_GroupUpdate get groupUpdate => $_getN(14);
  @$pb.TagNumber(16)
  set groupUpdate(EncryptedContent_GroupUpdate value) => $_setField(16, value);
  @$pb.TagNumber(16)
  $core.bool hasGroupUpdate() => $_has(14);
  @$pb.TagNumber(16)
  void clearGroupUpdate() => $_clearField(16);
  @$pb.TagNumber(16)
  EncryptedContent_GroupUpdate ensureGroupUpdate() => $_ensure(14);

  @$pb.TagNumber(17)
  EncryptedContent_ResendGroupPublicKey get resendGroupPublicKey => $_getN(15);
  @$pb.TagNumber(17)
  set resendGroupPublicKey(EncryptedContent_ResendGroupPublicKey value) =>
      $_setField(17, value);
  @$pb.TagNumber(17)
  $core.bool hasResendGroupPublicKey() => $_has(15);
  @$pb.TagNumber(17)
  void clearResendGroupPublicKey() => $_clearField(17);
  @$pb.TagNumber(17)
  EncryptedContent_ResendGroupPublicKey ensureResendGroupPublicKey() =>
      $_ensure(15);

  @$pb.TagNumber(18)
  EncryptedContent_ErrorMessages get errorMessages => $_getN(16);
  @$pb.TagNumber(18)
  set errorMessages(EncryptedContent_ErrorMessages value) =>
      $_setField(18, value);
  @$pb.TagNumber(18)
  $core.bool hasErrorMessages() => $_has(16);
  @$pb.TagNumber(18)
  void clearErrorMessages() => $_clearField(18);
  @$pb.TagNumber(18)
  EncryptedContent_ErrorMessages ensureErrorMessages() => $_ensure(16);

  @$pb.TagNumber(19)
  EncryptedContent_AdditionalDataMessage get additionalDataMessage =>
      $_getN(17);
  @$pb.TagNumber(19)
  set additionalDataMessage(EncryptedContent_AdditionalDataMessage value) =>
      $_setField(19, value);
  @$pb.TagNumber(19)
  $core.bool hasAdditionalDataMessage() => $_has(17);
  @$pb.TagNumber(19)
  void clearAdditionalDataMessage() => $_clearField(19);
  @$pb.TagNumber(19)
  EncryptedContent_AdditionalDataMessage ensureAdditionalDataMessage() =>
      $_ensure(17);

  @$pb.TagNumber(20)
  EncryptedContent_TypingIndicator get typingIndicator => $_getN(18);
  @$pb.TagNumber(20)
  set typingIndicator(EncryptedContent_TypingIndicator value) =>
      $_setField(20, value);
  @$pb.TagNumber(20)
  $core.bool hasTypingIndicator() => $_has(18);
  @$pb.TagNumber(20)
  void clearTypingIndicator() => $_clearField(20);
  @$pb.TagNumber(20)
  EncryptedContent_TypingIndicator ensureTypingIndicator() => $_ensure(18);

  @$pb.TagNumber(21)
  $core.List<$core.int> get senderUserDiscoveryVersion => $_getN(19);
  @$pb.TagNumber(21)
  set senderUserDiscoveryVersion($core.List<$core.int> value) =>
      $_setBytes(19, value);
  @$pb.TagNumber(21)
  $core.bool hasSenderUserDiscoveryVersion() => $_has(19);
  @$pb.TagNumber(21)
  void clearSenderUserDiscoveryVersion() => $_clearField(21);

  @$pb.TagNumber(22)
  EncryptedContent_UserDiscoveryRequest get userDiscoveryRequest => $_getN(20);
  @$pb.TagNumber(22)
  set userDiscoveryRequest(EncryptedContent_UserDiscoveryRequest value) =>
      $_setField(22, value);
  @$pb.TagNumber(22)
  $core.bool hasUserDiscoveryRequest() => $_has(20);
  @$pb.TagNumber(22)
  void clearUserDiscoveryRequest() => $_clearField(22);
  @$pb.TagNumber(22)
  EncryptedContent_UserDiscoveryRequest ensureUserDiscoveryRequest() =>
      $_ensure(20);

  @$pb.TagNumber(23)
  EncryptedContent_UserDiscoveryUpdate get userDiscoveryUpdate => $_getN(21);
  @$pb.TagNumber(23)
  set userDiscoveryUpdate(EncryptedContent_UserDiscoveryUpdate value) =>
      $_setField(23, value);
  @$pb.TagNumber(23)
  $core.bool hasUserDiscoveryUpdate() => $_has(21);
  @$pb.TagNumber(23)
  void clearUserDiscoveryUpdate() => $_clearField(23);
  @$pb.TagNumber(23)
  EncryptedContent_UserDiscoveryUpdate ensureUserDiscoveryUpdate() =>
      $_ensure(21);

  @$pb.TagNumber(24)
  EncryptedContent_KeyVerificationProof get keyVerificationProof => $_getN(22);
  @$pb.TagNumber(24)
  set keyVerificationProof(EncryptedContent_KeyVerificationProof value) =>
      $_setField(24, value);
  @$pb.TagNumber(24)
  $core.bool hasKeyVerificationProof() => $_has(22);
  @$pb.TagNumber(24)
  void clearKeyVerificationProof() => $_clearField(24);
  @$pb.TagNumber(24)
  EncryptedContent_KeyVerificationProof ensureKeyVerificationProof() =>
      $_ensure(22);

  @$pb.TagNumber(25)
  $core.bool get askForFriendPromotions => $_getBF(23);
  @$pb.TagNumber(25)
  set askForFriendPromotions($core.bool value) => $_setBool(23, value);
  @$pb.TagNumber(25)
  $core.bool hasAskForFriendPromotions() => $_has(23);
  @$pb.TagNumber(25)
  void clearAskForFriendPromotions() => $_clearField(25);

  @$pb.TagNumber(26)
  EncryptedContent_PasswordLessRecovery get passwordlessRecovery => $_getN(24);
  @$pb.TagNumber(26)
  set passwordlessRecovery(EncryptedContent_PasswordLessRecovery value) =>
      $_setField(26, value);
  @$pb.TagNumber(26)
  $core.bool hasPasswordlessRecovery() => $_has(24);
  @$pb.TagNumber(26)
  void clearPasswordlessRecovery() => $_clearField(26);
  @$pb.TagNumber(26)
  EncryptedContent_PasswordLessRecovery ensurePasswordlessRecovery() =>
      $_ensure(24);

  @$pb.TagNumber(27)
  EncryptedContent_PasswordLessRecoveryHeartbeat
      get passwordlessRecoveryHeartbeat => $_getN(25);
  @$pb.TagNumber(27)
  set passwordlessRecoveryHeartbeat(
          EncryptedContent_PasswordLessRecoveryHeartbeat value) =>
      $_setField(27, value);
  @$pb.TagNumber(27)
  $core.bool hasPasswordlessRecoveryHeartbeat() => $_has(25);
  @$pb.TagNumber(27)
  void clearPasswordlessRecoveryHeartbeat() => $_clearField(27);
  @$pb.TagNumber(27)
  EncryptedContent_PasswordLessRecoveryHeartbeat
      ensurePasswordlessRecoveryHeartbeat() => $_ensure(25);
}

const $core.bool _omitFieldNames =
    $core.bool.fromEnvironment('protobuf.omit_field_names');
const $core.bool _omitMessageNames =
    $core.bool.fromEnvironment('protobuf.omit_message_names');
