public final class

ModifiersProto

extends java.lang.Object

 java.lang.Object

↳androidx.wear.protolayout.proto.ModifiersProto

Gradle dependencies

compile group: 'androidx.wear.protolayout', name: 'protolayout-proto', version: '1.2.0'

  • groupId: androidx.wear.protolayout
  • artifactId: protolayout-proto
  • version: 1.2.0

Artifact androidx.wear.protolayout:protolayout-proto:1.2.0 it located at Google repository (https://maven.google.com/)

Summary

Methods
public static voidregisterAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods

public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)

Source

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: modifiers.proto

package androidx.wear.protolayout.proto;

public final class ModifiersProto {
  private ModifiersProto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * <pre>
   * The type of user interface element. Accessibility services might use this to
   * describe the element or do customizations.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.proto.SemanticsRole}
   */
  public enum SemanticsRole
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Role is undefined. It may be automatically populated.
     * </pre>
     *
     * <code>SEMANTICS_ROLE_NONE = 0;</code>
     */
    SEMANTICS_ROLE_NONE(0),
    /**
     * <pre>
     * The element is an image.
     * </pre>
     *
     * <code>SEMANTICS_ROLE_IMAGE = 1;</code>
     */
    SEMANTICS_ROLE_IMAGE(1),
    /**
     * <pre>
     * The element is a Button control.
     * </pre>
     *
     * <code>SEMANTICS_ROLE_BUTTON = 2;</code>
     */
    SEMANTICS_ROLE_BUTTON(2),
    /**
     * <pre>
     * The element is a Checkbox which is a component that represents two states
     * (checked / unchecked).
     * </pre>
     *
     * <code>SEMANTICS_ROLE_CHECKBOX = 3;</code>
     */
    SEMANTICS_ROLE_CHECKBOX(3),
    /**
     * <pre>
     * The element is a Switch which is a two state toggleable component that
     * provides on/off like options.
     * </pre>
     *
     * <code>SEMANTICS_ROLE_SWITCH = 4;</code>
     */
    SEMANTICS_ROLE_SWITCH(4),
    /**
     * <pre>
     * This element is a RadioButton which is a component to represent two states,
     * selected and not selected.
     * </pre>
     *
     * <code>SEMANTICS_ROLE_RADIOBUTTON = 5;</code>
     */
    SEMANTICS_ROLE_RADIOBUTTON(5),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Role is undefined. It may be automatically populated.
     * </pre>
     *
     * <code>SEMANTICS_ROLE_NONE = 0;</code>
     */
    public static final int SEMANTICS_ROLE_NONE_VALUE = 0;
    /**
     * <pre>
     * The element is an image.
     * </pre>
     *
     * <code>SEMANTICS_ROLE_IMAGE = 1;</code>
     */
    public static final int SEMANTICS_ROLE_IMAGE_VALUE = 1;
    /**
     * <pre>
     * The element is a Button control.
     * </pre>
     *
     * <code>SEMANTICS_ROLE_BUTTON = 2;</code>
     */
    public static final int SEMANTICS_ROLE_BUTTON_VALUE = 2;
    /**
     * <pre>
     * The element is a Checkbox which is a component that represents two states
     * (checked / unchecked).
     * </pre>
     *
     * <code>SEMANTICS_ROLE_CHECKBOX = 3;</code>
     */
    public static final int SEMANTICS_ROLE_CHECKBOX_VALUE = 3;
    /**
     * <pre>
     * The element is a Switch which is a two state toggleable component that
     * provides on/off like options.
     * </pre>
     *
     * <code>SEMANTICS_ROLE_SWITCH = 4;</code>
     */
    public static final int SEMANTICS_ROLE_SWITCH_VALUE = 4;
    /**
     * <pre>
     * This element is a RadioButton which is a component to represent two states,
     * selected and not selected.
     * </pre>
     *
     * <code>SEMANTICS_ROLE_RADIOBUTTON = 5;</code>
     */
    public static final int SEMANTICS_ROLE_RADIOBUTTON_VALUE = 5;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SemanticsRole valueOf(int value) {
      return forNumber(value);
    }

    public static SemanticsRole forNumber(int value) {
      switch (value) {
        case 0: return SEMANTICS_ROLE_NONE;
        case 1: return SEMANTICS_ROLE_IMAGE;
        case 2: return SEMANTICS_ROLE_BUTTON;
        case 3: return SEMANTICS_ROLE_CHECKBOX;
        case 4: return SEMANTICS_ROLE_SWITCH;
        case 5: return SEMANTICS_ROLE_RADIOBUTTON;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SemanticsRole>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SemanticsRole> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SemanticsRole>() {
            @java.lang.Override
            public SemanticsRole findValueByNumber(int number) {
              return SemanticsRole.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return SemanticsRoleVerifier.INSTANCE;
    }

    private static final class SemanticsRoleVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new SemanticsRoleVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return SemanticsRole.forNumber(number) != null;
            }
          };

    private final int value;

    private SemanticsRole(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.proto.SemanticsRole)
  }

  /**
   * <pre>
   * The snap options to use when sliding using parent boundaries.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.proto.SlideParentSnapOption}
   */
  public enum SlideParentSnapOption
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * The undefined snapping option.
     * </pre>
     *
     * <code>SLIDE_PARENT_SNAP_UNDEFINED = 0;</code>
     */
    SLIDE_PARENT_SNAP_UNDEFINED(0),
    /**
     * <pre>
     * The option that snaps insides of the element and its parent at start/end.
     * </pre>
     *
     * <code>SLIDE_PARENT_SNAP_TO_INSIDE = 1;</code>
     */
    SLIDE_PARENT_SNAP_TO_INSIDE(1),
    /**
     * <pre>
     * The option that snaps outsides of the element and its parent at start/end.
     * </pre>
     *
     * <code>SLIDE_PARENT_SNAP_TO_OUTSIDE = 2;</code>
     */
    SLIDE_PARENT_SNAP_TO_OUTSIDE(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * The undefined snapping option.
     * </pre>
     *
     * <code>SLIDE_PARENT_SNAP_UNDEFINED = 0;</code>
     */
    public static final int SLIDE_PARENT_SNAP_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * The option that snaps insides of the element and its parent at start/end.
     * </pre>
     *
     * <code>SLIDE_PARENT_SNAP_TO_INSIDE = 1;</code>
     */
    public static final int SLIDE_PARENT_SNAP_TO_INSIDE_VALUE = 1;
    /**
     * <pre>
     * The option that snaps outsides of the element and its parent at start/end.
     * </pre>
     *
     * <code>SLIDE_PARENT_SNAP_TO_OUTSIDE = 2;</code>
     */
    public static final int SLIDE_PARENT_SNAP_TO_OUTSIDE_VALUE = 2;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SlideParentSnapOption valueOf(int value) {
      return forNumber(value);
    }

    public static SlideParentSnapOption forNumber(int value) {
      switch (value) {
        case 0: return SLIDE_PARENT_SNAP_UNDEFINED;
        case 1: return SLIDE_PARENT_SNAP_TO_INSIDE;
        case 2: return SLIDE_PARENT_SNAP_TO_OUTSIDE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SlideParentSnapOption>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SlideParentSnapOption> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SlideParentSnapOption>() {
            @java.lang.Override
            public SlideParentSnapOption findValueByNumber(int number) {
              return SlideParentSnapOption.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return SlideParentSnapOptionVerifier.INSTANCE;
    }

    private static final class SlideParentSnapOptionVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new SlideParentSnapOptionVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return SlideParentSnapOption.forNumber(number) != null;
            }
          };

    private final int value;

    private SlideParentSnapOption(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.proto.SlideParentSnapOption)
  }

  /**
   * <pre>
   * The slide direction used for slide animations on any element, from the
   * specified point to its destination in the layout for in animation or reverse
   * for out animation.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.proto.SlideDirection}
   */
  public enum SlideDirection
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * The undefined sliding orientation.
     * </pre>
     *
     * <code>SLIDE_DIRECTION_UNDEFINED = 0;</code>
     */
    SLIDE_DIRECTION_UNDEFINED(0),
    /**
     * <pre>
     * The sliding orientation that moves an element horizontally from left to the
     * right.
     * </pre>
     *
     * <code>SLIDE_DIRECTION_LEFT_TO_RIGHT = 1;</code>
     */
    SLIDE_DIRECTION_LEFT_TO_RIGHT(1),
    /**
     * <pre>
     * The sliding orientation that moves an element horizontally from right to
     * the left.
     * </pre>
     *
     * <code>SLIDE_DIRECTION_RIGHT_TO_LEFT = 2;</code>
     */
    SLIDE_DIRECTION_RIGHT_TO_LEFT(2),
    /**
     * <pre>
     * The sliding orientation that moves an element vertically from top to the
     * bottom.
     * </pre>
     *
     * <code>SLIDE_DIRECTION_TOP_TO_BOTTOM = 3;</code>
     */
    SLIDE_DIRECTION_TOP_TO_BOTTOM(3),
    /**
     * <pre>
     * The sliding orientation that moves an element vertically from bottom to the
     * top.
     * </pre>
     *
     * <code>SLIDE_DIRECTION_BOTTOM_TO_TOP = 4;</code>
     */
    SLIDE_DIRECTION_BOTTOM_TO_TOP(4),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * The undefined sliding orientation.
     * </pre>
     *
     * <code>SLIDE_DIRECTION_UNDEFINED = 0;</code>
     */
    public static final int SLIDE_DIRECTION_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * The sliding orientation that moves an element horizontally from left to the
     * right.
     * </pre>
     *
     * <code>SLIDE_DIRECTION_LEFT_TO_RIGHT = 1;</code>
     */
    public static final int SLIDE_DIRECTION_LEFT_TO_RIGHT_VALUE = 1;
    /**
     * <pre>
     * The sliding orientation that moves an element horizontally from right to
     * the left.
     * </pre>
     *
     * <code>SLIDE_DIRECTION_RIGHT_TO_LEFT = 2;</code>
     */
    public static final int SLIDE_DIRECTION_RIGHT_TO_LEFT_VALUE = 2;
    /**
     * <pre>
     * The sliding orientation that moves an element vertically from top to the
     * bottom.
     * </pre>
     *
     * <code>SLIDE_DIRECTION_TOP_TO_BOTTOM = 3;</code>
     */
    public static final int SLIDE_DIRECTION_TOP_TO_BOTTOM_VALUE = 3;
    /**
     * <pre>
     * The sliding orientation that moves an element vertically from bottom to the
     * top.
     * </pre>
     *
     * <code>SLIDE_DIRECTION_BOTTOM_TO_TOP = 4;</code>
     */
    public static final int SLIDE_DIRECTION_BOTTOM_TO_TOP_VALUE = 4;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SlideDirection valueOf(int value) {
      return forNumber(value);
    }

    public static SlideDirection forNumber(int value) {
      switch (value) {
        case 0: return SLIDE_DIRECTION_UNDEFINED;
        case 1: return SLIDE_DIRECTION_LEFT_TO_RIGHT;
        case 2: return SLIDE_DIRECTION_RIGHT_TO_LEFT;
        case 3: return SLIDE_DIRECTION_TOP_TO_BOTTOM;
        case 4: return SLIDE_DIRECTION_BOTTOM_TO_TOP;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SlideDirection>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SlideDirection> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SlideDirection>() {
            @java.lang.Override
            public SlideDirection findValueByNumber(int number) {
              return SlideDirection.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return SlideDirectionVerifier.INSTANCE;
    }

    private static final class SlideDirectionVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new SlideDirectionVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return SlideDirection.forNumber(number) != null;
            }
          };

    private final int value;

    private SlideDirection(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.proto.SlideDirection)
  }

  public interface ClickableOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Clickable)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The ID associated with this action.
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The id.
     */
    java.lang.String getId();
    /**
     * <pre>
     * The ID associated with this action.
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * <pre>
     * The action to perform when the element this modifier is attached to is
     * clicked.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
     * @return Whether the onClick field is set.
     */
    boolean hasOnClick();
    /**
     * <pre>
     * The action to perform when the element this modifier is attached to is
     * clicked.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
     * @return The onClick.
     */
    androidx.wear.protolayout.proto.ActionProto.Action getOnClick();

    /**
     * <pre>
     * The minimum width of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable width is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
     * @return Whether the minimumClickableWidth field is set.
     */
    boolean hasMinimumClickableWidth();
    /**
     * <pre>
     * The minimum width of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable width is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
     * @return The minimumClickableWidth.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getMinimumClickableWidth();

    /**
     * <pre>
     * The minimum height of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable height is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
     * @return Whether the minimumClickableHeight field is set.
     */
    boolean hasMinimumClickableHeight();
    /**
     * <pre>
     * The minimum height of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable height is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
     * @return The minimumClickableHeight.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getMinimumClickableHeight();

    /**
     * <pre>
     * Whether the click visual feedback (such as a ripple) should be enabled.
     * Defaults to true.
     * </pre>
     *
     * <code>bool visual_feedback_enabled = 5;</code>
     * @return Whether the visualFeedbackEnabled field is set.
     */
    boolean hasVisualFeedbackEnabled();
    /**
     * <pre>
     * Whether the click visual feedback (such as a ripple) should be enabled.
     * Defaults to true.
     * </pre>
     *
     * <code>bool visual_feedback_enabled = 5;</code>
     * @return The visualFeedbackEnabled.
     */
    boolean getVisualFeedbackEnabled();

    public androidx.wear.protolayout.proto.ModifiersProto.Clickable.OptionalVisualFeedbackEnabledCase getOptionalVisualFeedbackEnabledCase();
  }
  /**
   * <pre>
   * A modifier for an element which can have associated Actions for click events.
   * When an element with a ClickableModifier is clicked it will fire the
   * associated action.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Clickable}
   */
  public  static final class Clickable extends
      com.google.protobuf.GeneratedMessageLite<
          Clickable, Clickable.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Clickable)
      ClickableOrBuilder {
    private Clickable() {
      id_ = "";
    }
    private int optionalVisualFeedbackEnabledCase_ = 0;
    private java.lang.Object optionalVisualFeedbackEnabled_;
    public enum OptionalVisualFeedbackEnabledCase {
      VISUAL_FEEDBACK_ENABLED(5),
      OPTIONALVISUALFEEDBACKENABLED_NOT_SET(0);
      private final int value;
      private OptionalVisualFeedbackEnabledCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OptionalVisualFeedbackEnabledCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionalVisualFeedbackEnabledCase forNumber(int value) {
        switch (value) {
          case 5: return VISUAL_FEEDBACK_ENABLED;
          case 0: return OPTIONALVISUALFEEDBACKENABLED_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public OptionalVisualFeedbackEnabledCase
    getOptionalVisualFeedbackEnabledCase() {
      return OptionalVisualFeedbackEnabledCase.forNumber(
          optionalVisualFeedbackEnabledCase_);
    }

    private void clearOptionalVisualFeedbackEnabled() {
      optionalVisualFeedbackEnabledCase_ = 0;
      optionalVisualFeedbackEnabled_ = null;
    }

    public static final int ID_FIELD_NUMBER = 1;
    private java.lang.String id_;
    /**
     * <pre>
     * The ID associated with this action.
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      return id_;
    }
    /**
     * <pre>
     * The ID associated with this action.
     * </pre>
     *
     * <code>string id = 1;</code>
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(id_);
    }
    /**
     * <pre>
     * The ID associated with this action.
     * </pre>
     *
     * <code>string id = 1;</code>
     * @param value The id to set.
     */
    private void setId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      id_ = value;
    }
    /**
     * <pre>
     * The ID associated with this action.
     * </pre>
     *
     * <code>string id = 1;</code>
     */
    private void clearId() {

      id_ = getDefaultInstance().getId();
    }
    /**
     * <pre>
     * The ID associated with this action.
     * </pre>
     *
     * <code>string id = 1;</code>
     * @param value The bytes for id to set.
     */
    private void setIdBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      id_ = value.toStringUtf8();

    }

    public static final int ON_CLICK_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ActionProto.Action onClick_;
    /**
     * <pre>
     * The action to perform when the element this modifier is attached to is
     * clicked.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
     */
    @java.lang.Override
    public boolean hasOnClick() {
      return onClick_ != null;
    }
    /**
     * <pre>
     * The action to perform when the element this modifier is attached to is
     * clicked.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ActionProto.Action getOnClick() {
      return onClick_ == null ? androidx.wear.protolayout.proto.ActionProto.Action.getDefaultInstance() : onClick_;
    }
    /**
     * <pre>
     * The action to perform when the element this modifier is attached to is
     * clicked.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
     */
    private void setOnClick(androidx.wear.protolayout.proto.ActionProto.Action value) {
      value.getClass();
  onClick_ = value;

      }
    /**
     * <pre>
     * The action to perform when the element this modifier is attached to is
     * clicked.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeOnClick(androidx.wear.protolayout.proto.ActionProto.Action value) {
      value.getClass();
  if (onClick_ != null &&
          onClick_ != androidx.wear.protolayout.proto.ActionProto.Action.getDefaultInstance()) {
        onClick_ =
          androidx.wear.protolayout.proto.ActionProto.Action.newBuilder(onClick_).mergeFrom(value).buildPartial();
      } else {
        onClick_ = value;
      }

    }
    /**
     * <pre>
     * The action to perform when the element this modifier is attached to is
     * clicked.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
     */
    private void clearOnClick() {  onClick_ = null;

    }

    public static final int MINIMUM_CLICKABLE_WIDTH_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp minimumClickableWidth_;
    /**
     * <pre>
     * The minimum width of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable width is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
     */
    @java.lang.Override
    public boolean hasMinimumClickableWidth() {
      return minimumClickableWidth_ != null;
    }
    /**
     * <pre>
     * The minimum width of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable width is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getMinimumClickableWidth() {
      return minimumClickableWidth_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : minimumClickableWidth_;
    }
    /**
     * <pre>
     * The minimum width of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable width is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
     */
    private void setMinimumClickableWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  minimumClickableWidth_ = value;

      }
    /**
     * <pre>
     * The minimum width of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable width is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMinimumClickableWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (minimumClickableWidth_ != null &&
          minimumClickableWidth_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        minimumClickableWidth_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(minimumClickableWidth_).mergeFrom(value).buildPartial();
      } else {
        minimumClickableWidth_ = value;
      }

    }
    /**
     * <pre>
     * The minimum width of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable width is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
     */
    private void clearMinimumClickableWidth() {  minimumClickableWidth_ = null;

    }

    public static final int MINIMUM_CLICKABLE_HEIGHT_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp minimumClickableHeight_;
    /**
     * <pre>
     * The minimum height of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable height is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
     */
    @java.lang.Override
    public boolean hasMinimumClickableHeight() {
      return minimumClickableHeight_ != null;
    }
    /**
     * <pre>
     * The minimum height of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable height is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getMinimumClickableHeight() {
      return minimumClickableHeight_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : minimumClickableHeight_;
    }
    /**
     * <pre>
     * The minimum height of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable height is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
     */
    private void setMinimumClickableHeight(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  minimumClickableHeight_ = value;

      }
    /**
     * <pre>
     * The minimum height of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable height is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMinimumClickableHeight(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (minimumClickableHeight_ != null &&
          minimumClickableHeight_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        minimumClickableHeight_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(minimumClickableHeight_).mergeFrom(value).buildPartial();
      } else {
        minimumClickableHeight_ = value;
      }

    }
    /**
     * <pre>
     * The minimum height of the clickable area.
     *
     * The default value is 48dp, following the Material design accessibility
     * guideline. Note that this value does not affect the layout, so the minimum
     * clickable height is not guaranteed unless there is enough space around the
     * element within its parent bounds.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
     */
    private void clearMinimumClickableHeight() {  minimumClickableHeight_ = null;

    }

    public static final int VISUAL_FEEDBACK_ENABLED_FIELD_NUMBER = 5;
    /**
     * <pre>
     * Whether the click visual feedback (such as a ripple) should be enabled.
     * Defaults to true.
     * </pre>
     *
     * <code>bool visual_feedback_enabled = 5;</code>
     * @return Whether the visualFeedbackEnabled field is set.
     */
    @java.lang.Override
    public boolean hasVisualFeedbackEnabled() {
      return optionalVisualFeedbackEnabledCase_ == 5;
    }
    /**
     * <pre>
     * Whether the click visual feedback (such as a ripple) should be enabled.
     * Defaults to true.
     * </pre>
     *
     * <code>bool visual_feedback_enabled = 5;</code>
     * @return The visualFeedbackEnabled.
     */
    @java.lang.Override
    public boolean getVisualFeedbackEnabled() {
      if (optionalVisualFeedbackEnabledCase_ == 5) {
        return (java.lang.Boolean) optionalVisualFeedbackEnabled_;
      }
      return false;
    }
    /**
     * <pre>
     * Whether the click visual feedback (such as a ripple) should be enabled.
     * Defaults to true.
     * </pre>
     *
     * <code>bool visual_feedback_enabled = 5;</code>
     * @param value The visualFeedbackEnabled to set.
     */
    private void setVisualFeedbackEnabled(boolean value) {
      optionalVisualFeedbackEnabledCase_ = 5;
      optionalVisualFeedbackEnabled_ = value;
    }
    /**
     * <pre>
     * Whether the click visual feedback (such as a ripple) should be enabled.
     * Defaults to true.
     * </pre>
     *
     * <code>bool visual_feedback_enabled = 5;</code>
     */
    private void clearVisualFeedbackEnabled() {
      if (optionalVisualFeedbackEnabledCase_ == 5) {
        optionalVisualFeedbackEnabledCase_ = 0;
        optionalVisualFeedbackEnabled_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.Clickable prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A modifier for an element which can have associated Actions for click events.
     * When an element with a ClickableModifier is clicked it will fire the
     * associated action.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Clickable}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.Clickable, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Clickable)
        androidx.wear.protolayout.proto.ModifiersProto.ClickableOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.Clickable.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public OptionalVisualFeedbackEnabledCase
          getOptionalVisualFeedbackEnabledCase() {
        return instance.getOptionalVisualFeedbackEnabledCase();
      }

      public Builder clearOptionalVisualFeedbackEnabled() {
        copyOnWrite();
        instance.clearOptionalVisualFeedbackEnabled();
        return this;
      }


      /**
       * <pre>
       * The ID associated with this action.
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public java.lang.String getId() {
        return instance.getId();
      }
      /**
       * <pre>
       * The ID associated with this action.
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return The bytes for id.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getIdBytes() {
        return instance.getIdBytes();
      }
      /**
       * <pre>
       * The ID associated with this action.
       * </pre>
       *
       * <code>string id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <pre>
       * The ID associated with this action.
       * </pre>
       *
       * <code>string id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }
      /**
       * <pre>
       * The ID associated with this action.
       * </pre>
       *
       * <code>string id = 1;</code>
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setIdBytes(value);
        return this;
      }

      /**
       * <pre>
       * The action to perform when the element this modifier is attached to is
       * clicked.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
       */
      @java.lang.Override
      public boolean hasOnClick() {
        return instance.hasOnClick();
      }
      /**
       * <pre>
       * The action to perform when the element this modifier is attached to is
       * clicked.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ActionProto.Action getOnClick() {
        return instance.getOnClick();
      }
      /**
       * <pre>
       * The action to perform when the element this modifier is attached to is
       * clicked.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
       */
      public Builder setOnClick(androidx.wear.protolayout.proto.ActionProto.Action value) {
        copyOnWrite();
        instance.setOnClick(value);
        return this;
        }
      /**
       * <pre>
       * The action to perform when the element this modifier is attached to is
       * clicked.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
       */
      public Builder setOnClick(
          androidx.wear.protolayout.proto.ActionProto.Action.Builder builderForValue) {
        copyOnWrite();
        instance.setOnClick(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The action to perform when the element this modifier is attached to is
       * clicked.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
       */
      public Builder mergeOnClick(androidx.wear.protolayout.proto.ActionProto.Action value) {
        copyOnWrite();
        instance.mergeOnClick(value);
        return this;
      }
      /**
       * <pre>
       * The action to perform when the element this modifier is attached to is
       * clicked.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Action on_click = 2;</code>
       */
      public Builder clearOnClick() {  copyOnWrite();
        instance.clearOnClick();
        return this;
      }

      /**
       * <pre>
       * The minimum width of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable width is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
       */
      @java.lang.Override
      public boolean hasMinimumClickableWidth() {
        return instance.hasMinimumClickableWidth();
      }
      /**
       * <pre>
       * The minimum width of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable width is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getMinimumClickableWidth() {
        return instance.getMinimumClickableWidth();
      }
      /**
       * <pre>
       * The minimum width of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable width is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
       */
      public Builder setMinimumClickableWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setMinimumClickableWidth(value);
        return this;
        }
      /**
       * <pre>
       * The minimum width of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable width is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
       */
      public Builder setMinimumClickableWidth(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setMinimumClickableWidth(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The minimum width of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable width is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
       */
      public Builder mergeMinimumClickableWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeMinimumClickableWidth(value);
        return this;
      }
      /**
       * <pre>
       * The minimum width of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable width is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_width = 3;</code>
       */
      public Builder clearMinimumClickableWidth() {  copyOnWrite();
        instance.clearMinimumClickableWidth();
        return this;
      }

      /**
       * <pre>
       * The minimum height of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable height is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
       */
      @java.lang.Override
      public boolean hasMinimumClickableHeight() {
        return instance.hasMinimumClickableHeight();
      }
      /**
       * <pre>
       * The minimum height of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable height is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getMinimumClickableHeight() {
        return instance.getMinimumClickableHeight();
      }
      /**
       * <pre>
       * The minimum height of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable height is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
       */
      public Builder setMinimumClickableHeight(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setMinimumClickableHeight(value);
        return this;
        }
      /**
       * <pre>
       * The minimum height of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable height is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
       */
      public Builder setMinimumClickableHeight(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setMinimumClickableHeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The minimum height of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable height is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
       */
      public Builder mergeMinimumClickableHeight(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeMinimumClickableHeight(value);
        return this;
      }
      /**
       * <pre>
       * The minimum height of the clickable area.
       *
       * The default value is 48dp, following the Material design accessibility
       * guideline. Note that this value does not affect the layout, so the minimum
       * clickable height is not guaranteed unless there is enough space around the
       * element within its parent bounds.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp minimum_clickable_height = 4;</code>
       */
      public Builder clearMinimumClickableHeight() {  copyOnWrite();
        instance.clearMinimumClickableHeight();
        return this;
      }

      /**
       * <pre>
       * Whether the click visual feedback (such as a ripple) should be enabled.
       * Defaults to true.
       * </pre>
       *
       * <code>bool visual_feedback_enabled = 5;</code>
       * @return Whether the visualFeedbackEnabled field is set.
       */
      @java.lang.Override
      public boolean hasVisualFeedbackEnabled() {
        return instance.hasVisualFeedbackEnabled();
      }
      /**
       * <pre>
       * Whether the click visual feedback (such as a ripple) should be enabled.
       * Defaults to true.
       * </pre>
       *
       * <code>bool visual_feedback_enabled = 5;</code>
       * @return The visualFeedbackEnabled.
       */
      @java.lang.Override
      public boolean getVisualFeedbackEnabled() {
        return instance.getVisualFeedbackEnabled();
      }
      /**
       * <pre>
       * Whether the click visual feedback (such as a ripple) should be enabled.
       * Defaults to true.
       * </pre>
       *
       * <code>bool visual_feedback_enabled = 5;</code>
       * @param value The visualFeedbackEnabled to set.
       * @return This builder for chaining.
       */
      public Builder setVisualFeedbackEnabled(boolean value) {
        copyOnWrite();
        instance.setVisualFeedbackEnabled(value);
        return this;
      }
      /**
       * <pre>
       * Whether the click visual feedback (such as a ripple) should be enabled.
       * Defaults to true.
       * </pre>
       *
       * <code>bool visual_feedback_enabled = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearVisualFeedbackEnabled() {
        copyOnWrite();
        instance.clearVisualFeedbackEnabled();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Clickable)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.Clickable();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "optionalVisualFeedbackEnabled_",
              "optionalVisualFeedbackEnabledCase_",
              "id_",
              "onClick_",
              "minimumClickableWidth_",
              "minimumClickableHeight_",
            };
            java.lang.String info =
                "\u0000\u0005\u0001\u0000\u0001\u0005\u0005\u0000\u0000\u0000\u0001\u0208\u0002\t" +
                "\u0003\t\u0004\t\u0005:\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.Clickable> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.Clickable.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.Clickable>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.Clickable)
    private static final androidx.wear.protolayout.proto.ModifiersProto.Clickable DEFAULT_INSTANCE;
    static {
      Clickable defaultInstance = new Clickable();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Clickable.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Clickable getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Clickable> PARSER;

    public static com.google.protobuf.Parser<Clickable> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SemanticsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Semantics)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     * &#64;deprecated Use content_description instead.
     * </pre>
     *
     * <code>string obsolete_content_description = 1;</code>
     * @return The obsoleteContentDescription.
     */
    java.lang.String getObsoleteContentDescription();
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     * &#64;deprecated Use content_description instead.
     * </pre>
     *
     * <code>string obsolete_content_description = 1;</code>
     * @return The bytes for obsoleteContentDescription.
     */
    com.google.protobuf.ByteString
        getObsoleteContentDescriptionBytes();

    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
     * @return Whether the contentDescription field is set.
     */
    boolean hasContentDescription();
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
     * @return The contentDescription.
     */
    androidx.wear.protolayout.proto.TypesProto.StringProp getContentDescription();

    /**
     * <pre>
     * The type of user interface element. Accessibility services might use this
     * to describe the element or do customizations.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
     * @return The enum numeric value on the wire for role.
     */
    int getRoleValue();
    /**
     * <pre>
     * The type of user interface element. Accessibility services might use this
     * to describe the element or do customizations.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
     * @return The role.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SemanticsRole getRole();

    /**
     * <pre>
     * The localized state description of the semantics node.
     * For example: "on" or "off". This will be dictated when the element is
     * focused by the screen reader.
     *
     * This field is bindable and will use the dynamic value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
     * @return Whether the stateDescription field is set.
     */
    boolean hasStateDescription();
    /**
     * <pre>
     * The localized state description of the semantics node.
     * For example: "on" or "off". This will be dictated when the element is
     * focused by the screen reader.
     *
     * This field is bindable and will use the dynamic value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
     * @return The stateDescription.
     */
    androidx.wear.protolayout.proto.TypesProto.StringProp getStateDescription();
  }
  /**
   * <pre>
   * A modifier for an element which has accessibility semantics associated with
   * it. This should generally be used sparingly, and in most cases should only be
   * applied to the top-level layout element or to Clickables.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Semantics}
   */
  public  static final class Semantics extends
      com.google.protobuf.GeneratedMessageLite<
          Semantics, Semantics.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Semantics)
      SemanticsOrBuilder {
    private Semantics() {
      obsoleteContentDescription_ = "";
    }
    public static final int OBSOLETE_CONTENT_DESCRIPTION_FIELD_NUMBER = 1;
    private java.lang.String obsoleteContentDescription_;
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     * &#64;deprecated Use content_description instead.
     * </pre>
     *
     * <code>string obsolete_content_description = 1;</code>
     * @return The obsoleteContentDescription.
     */
    @java.lang.Override
    public java.lang.String getObsoleteContentDescription() {
      return obsoleteContentDescription_;
    }
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     * &#64;deprecated Use content_description instead.
     * </pre>
     *
     * <code>string obsolete_content_description = 1;</code>
     * @return The bytes for obsoleteContentDescription.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getObsoleteContentDescriptionBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(obsoleteContentDescription_);
    }
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     * &#64;deprecated Use content_description instead.
     * </pre>
     *
     * <code>string obsolete_content_description = 1;</code>
     * @param value The obsoleteContentDescription to set.
     */
    private void setObsoleteContentDescription(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      obsoleteContentDescription_ = value;
    }
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     * &#64;deprecated Use content_description instead.
     * </pre>
     *
     * <code>string obsolete_content_description = 1;</code>
     */
    private void clearObsoleteContentDescription() {

      obsoleteContentDescription_ = getDefaultInstance().getObsoleteContentDescription();
    }
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     * &#64;deprecated Use content_description instead.
     * </pre>
     *
     * <code>string obsolete_content_description = 1;</code>
     * @param value The bytes for obsoleteContentDescription to set.
     */
    private void setObsoleteContentDescriptionBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      obsoleteContentDescription_ = value.toStringUtf8();

    }

    public static final int CONTENT_DESCRIPTION_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.TypesProto.StringProp contentDescription_;
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
     */
    @java.lang.Override
    public boolean hasContentDescription() {
      return contentDescription_ != null;
    }
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.StringProp getContentDescription() {
      return contentDescription_ == null ? androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance() : contentDescription_;
    }
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
     */
    private void setContentDescription(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  contentDescription_ = value;

      }
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeContentDescription(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  if (contentDescription_ != null &&
          contentDescription_ != androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance()) {
        contentDescription_ =
          androidx.wear.protolayout.proto.TypesProto.StringProp.newBuilder(contentDescription_).mergeFrom(value).buildPartial();
      } else {
        contentDescription_ = value;
      }

    }
    /**
     * <pre>
     * The content description associated with this element. This will be dictated
     * when the element is focused by the screen reader.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
     */
    private void clearContentDescription() {  contentDescription_ = null;

    }

    public static final int ROLE_FIELD_NUMBER = 2;
    private int role_;
    /**
     * <pre>
     * The type of user interface element. Accessibility services might use this
     * to describe the element or do customizations.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
     * @return The enum numeric value on the wire for role.
     */
    @java.lang.Override
    public int getRoleValue() {
      return role_;
    }
    /**
     * <pre>
     * The type of user interface element. Accessibility services might use this
     * to describe the element or do customizations.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
     * @return The role.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SemanticsRole getRole() {
      androidx.wear.protolayout.proto.ModifiersProto.SemanticsRole result = androidx.wear.protolayout.proto.ModifiersProto.SemanticsRole.forNumber(role_);
      return result == null ? androidx.wear.protolayout.proto.ModifiersProto.SemanticsRole.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The type of user interface element. Accessibility services might use this
     * to describe the element or do customizations.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
     * @param value The enum numeric value on the wire for role to set.
     */
    private void setRoleValue(int value) {
        role_ = value;
    }
    /**
     * <pre>
     * The type of user interface element. Accessibility services might use this
     * to describe the element or do customizations.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
     * @param value The role to set.
     */
    private void setRole(androidx.wear.protolayout.proto.ModifiersProto.SemanticsRole value) {
      role_ = value.getNumber();

    }
    /**
     * <pre>
     * The type of user interface element. Accessibility services might use this
     * to describe the element or do customizations.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
     */
    private void clearRole() {

      role_ = 0;
    }

    public static final int STATE_DESCRIPTION_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.TypesProto.StringProp stateDescription_;
    /**
     * <pre>
     * The localized state description of the semantics node.
     * For example: "on" or "off". This will be dictated when the element is
     * focused by the screen reader.
     *
     * This field is bindable and will use the dynamic value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
     */
    @java.lang.Override
    public boolean hasStateDescription() {
      return stateDescription_ != null;
    }
    /**
     * <pre>
     * The localized state description of the semantics node.
     * For example: "on" or "off". This will be dictated when the element is
     * focused by the screen reader.
     *
     * This field is bindable and will use the dynamic value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.StringProp getStateDescription() {
      return stateDescription_ == null ? androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance() : stateDescription_;
    }
    /**
     * <pre>
     * The localized state description of the semantics node.
     * For example: "on" or "off". This will be dictated when the element is
     * focused by the screen reader.
     *
     * This field is bindable and will use the dynamic value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
     */
    private void setStateDescription(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  stateDescription_ = value;

      }
    /**
     * <pre>
     * The localized state description of the semantics node.
     * For example: "on" or "off". This will be dictated when the element is
     * focused by the screen reader.
     *
     * This field is bindable and will use the dynamic value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeStateDescription(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  if (stateDescription_ != null &&
          stateDescription_ != androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance()) {
        stateDescription_ =
          androidx.wear.protolayout.proto.TypesProto.StringProp.newBuilder(stateDescription_).mergeFrom(value).buildPartial();
      } else {
        stateDescription_ = value;
      }

    }
    /**
     * <pre>
     * The localized state description of the semantics node.
     * For example: "on" or "off". This will be dictated when the element is
     * focused by the screen reader.
     *
     * This field is bindable and will use the dynamic value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
     */
    private void clearStateDescription() {  stateDescription_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.Semantics prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A modifier for an element which has accessibility semantics associated with
     * it. This should generally be used sparingly, and in most cases should only be
     * applied to the top-level layout element or to Clickables.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Semantics}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.Semantics, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Semantics)
        androidx.wear.protolayout.proto.ModifiersProto.SemanticsOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.Semantics.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       * &#64;deprecated Use content_description instead.
       * </pre>
       *
       * <code>string obsolete_content_description = 1;</code>
       * @return The obsoleteContentDescription.
       */
      @java.lang.Override
      public java.lang.String getObsoleteContentDescription() {
        return instance.getObsoleteContentDescription();
      }
      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       * &#64;deprecated Use content_description instead.
       * </pre>
       *
       * <code>string obsolete_content_description = 1;</code>
       * @return The bytes for obsoleteContentDescription.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getObsoleteContentDescriptionBytes() {
        return instance.getObsoleteContentDescriptionBytes();
      }
      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       * &#64;deprecated Use content_description instead.
       * </pre>
       *
       * <code>string obsolete_content_description = 1;</code>
       * @param value The obsoleteContentDescription to set.
       * @return This builder for chaining.
       */
      public Builder setObsoleteContentDescription(
          java.lang.String value) {
        copyOnWrite();
        instance.setObsoleteContentDescription(value);
        return this;
      }
      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       * &#64;deprecated Use content_description instead.
       * </pre>
       *
       * <code>string obsolete_content_description = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearObsoleteContentDescription() {
        copyOnWrite();
        instance.clearObsoleteContentDescription();
        return this;
      }
      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       * &#64;deprecated Use content_description instead.
       * </pre>
       *
       * <code>string obsolete_content_description = 1;</code>
       * @param value The bytes for obsoleteContentDescription to set.
       * @return This builder for chaining.
       */
      public Builder setObsoleteContentDescriptionBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setObsoleteContentDescriptionBytes(value);
        return this;
      }

      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
       */
      @java.lang.Override
      public boolean hasContentDescription() {
        return instance.hasContentDescription();
      }
      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.StringProp getContentDescription() {
        return instance.getContentDescription();
      }
      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
       */
      public Builder setContentDescription(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.setContentDescription(value);
        return this;
        }
      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
       */
      public Builder setContentDescription(
          androidx.wear.protolayout.proto.TypesProto.StringProp.Builder builderForValue) {
        copyOnWrite();
        instance.setContentDescription(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
       */
      public Builder mergeContentDescription(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.mergeContentDescription(value);
        return this;
      }
      /**
       * <pre>
       * The content description associated with this element. This will be dictated
       * when the element is focused by the screen reader.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp content_description = 4;</code>
       */
      public Builder clearContentDescription() {  copyOnWrite();
        instance.clearContentDescription();
        return this;
      }

      /**
       * <pre>
       * The type of user interface element. Accessibility services might use this
       * to describe the element or do customizations.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
       * @return The enum numeric value on the wire for role.
       */
      @java.lang.Override
      public int getRoleValue() {
        return instance.getRoleValue();
      }
      /**
       * <pre>
       * The type of user interface element. Accessibility services might use this
       * to describe the element or do customizations.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
       * @param value The role to set.
       * @return This builder for chaining.
       */
      public Builder setRoleValue(int value) {
        copyOnWrite();
        instance.setRoleValue(value);
        return this;
      }
      /**
       * <pre>
       * The type of user interface element. Accessibility services might use this
       * to describe the element or do customizations.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
       * @return The role.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SemanticsRole getRole() {
        return instance.getRole();
      }
      /**
       * <pre>
       * The type of user interface element. Accessibility services might use this
       * to describe the element or do customizations.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
       * @param value The enum numeric value on the wire for role to set.
       * @return This builder for chaining.
       */
      public Builder setRole(androidx.wear.protolayout.proto.ModifiersProto.SemanticsRole value) {
        copyOnWrite();
        instance.setRole(value);
        return this;
      }
      /**
       * <pre>
       * The type of user interface element. Accessibility services might use this
       * to describe the element or do customizations.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SemanticsRole role = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRole() {
        copyOnWrite();
        instance.clearRole();
        return this;
      }

      /**
       * <pre>
       * The localized state description of the semantics node.
       * For example: "on" or "off". This will be dictated when the element is
       * focused by the screen reader.
       *
       * This field is bindable and will use the dynamic value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
       */
      @java.lang.Override
      public boolean hasStateDescription() {
        return instance.hasStateDescription();
      }
      /**
       * <pre>
       * The localized state description of the semantics node.
       * For example: "on" or "off". This will be dictated when the element is
       * focused by the screen reader.
       *
       * This field is bindable and will use the dynamic value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.StringProp getStateDescription() {
        return instance.getStateDescription();
      }
      /**
       * <pre>
       * The localized state description of the semantics node.
       * For example: "on" or "off". This will be dictated when the element is
       * focused by the screen reader.
       *
       * This field is bindable and will use the dynamic value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
       */
      public Builder setStateDescription(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.setStateDescription(value);
        return this;
        }
      /**
       * <pre>
       * The localized state description of the semantics node.
       * For example: "on" or "off". This will be dictated when the element is
       * focused by the screen reader.
       *
       * This field is bindable and will use the dynamic value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
       */
      public Builder setStateDescription(
          androidx.wear.protolayout.proto.TypesProto.StringProp.Builder builderForValue) {
        copyOnWrite();
        instance.setStateDescription(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The localized state description of the semantics node.
       * For example: "on" or "off". This will be dictated when the element is
       * focused by the screen reader.
       *
       * This field is bindable and will use the dynamic value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
       */
      public Builder mergeStateDescription(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.mergeStateDescription(value);
        return this;
      }
      /**
       * <pre>
       * The localized state description of the semantics node.
       * For example: "on" or "off". This will be dictated when the element is
       * focused by the screen reader.
       *
       * This field is bindable and will use the dynamic value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp state_description = 3;</code>
       */
      public Builder clearStateDescription() {  copyOnWrite();
        instance.clearStateDescription();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Semantics)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.Semantics();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "obsoleteContentDescription_",
              "role_",
              "stateDescription_",
              "contentDescription_",
            };
            java.lang.String info =
                "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u0001\u0208\u0002\f" +
                "\u0003\t\u0004\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.Semantics> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.Semantics.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.Semantics>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.Semantics)
    private static final androidx.wear.protolayout.proto.ModifiersProto.Semantics DEFAULT_INSTANCE;
    static {
      Semantics defaultInstance = new Semantics();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Semantics.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Semantics getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Semantics> PARSER;

    public static com.google.protobuf.Parser<Semantics> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface PaddingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Padding)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The padding on the end of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
     * @return Whether the end field is set.
     */
    boolean hasEnd();
    /**
     * <pre>
     * The padding on the end of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
     * @return The end.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getEnd();

    /**
     * <pre>
     * The padding on the start of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
     * @return Whether the start field is set.
     */
    boolean hasStart();
    /**
     * <pre>
     * The padding on the start of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
     * @return The start.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getStart();

    /**
     * <pre>
     * The padding at the top, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
     * @return Whether the top field is set.
     */
    boolean hasTop();
    /**
     * <pre>
     * The padding at the top, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
     * @return The top.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getTop();

    /**
     * <pre>
     * The padding at the bottom, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
     * @return Whether the bottom field is set.
     */
    boolean hasBottom();
    /**
     * <pre>
     * The padding at the bottom, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
     * @return The bottom.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getBottom();

    /**
     * <pre>
     * Whether the start/end padding is aware of RTL support. If true, the values
     * for start/end will follow the layout direction (i.e. start will refer to
     * the right hand side of the container if the device is using an RTL locale).
     * If false, start/end will always map to left/right, accordingly.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
     * @return Whether the rtlAware field is set.
     */
    boolean hasRtlAware();
    /**
     * <pre>
     * Whether the start/end padding is aware of RTL support. If true, the values
     * for start/end will follow the layout direction (i.e. start will refer to
     * the right hand side of the container if the device is using an RTL locale).
     * If false, start/end will always map to left/right, accordingly.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
     * @return The rtlAware.
     */
    androidx.wear.protolayout.proto.TypesProto.BoolProp getRtlAware();
  }
  /**
   * <pre>
   * A modifier to apply padding around an element.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Padding}
   */
  public  static final class Padding extends
      com.google.protobuf.GeneratedMessageLite<
          Padding, Padding.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Padding)
      PaddingOrBuilder {
    private Padding() {
    }
    public static final int END_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp end_;
    /**
     * <pre>
     * The padding on the end of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
     */
    @java.lang.Override
    public boolean hasEnd() {
      return end_ != null;
    }
    /**
     * <pre>
     * The padding on the end of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getEnd() {
      return end_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : end_;
    }
    /**
     * <pre>
     * The padding on the end of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
     */
    private void setEnd(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  end_ = value;

      }
    /**
     * <pre>
     * The padding on the end of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeEnd(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (end_ != null &&
          end_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        end_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(end_).mergeFrom(value).buildPartial();
      } else {
        end_ = value;
      }

    }
    /**
     * <pre>
     * The padding on the end of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
     */
    private void clearEnd() {  end_ = null;

    }

    public static final int START_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp start_;
    /**
     * <pre>
     * The padding on the start of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
     */
    @java.lang.Override
    public boolean hasStart() {
      return start_ != null;
    }
    /**
     * <pre>
     * The padding on the start of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getStart() {
      return start_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : start_;
    }
    /**
     * <pre>
     * The padding on the start of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
     */
    private void setStart(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  start_ = value;

      }
    /**
     * <pre>
     * The padding on the start of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeStart(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (start_ != null &&
          start_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        start_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(start_).mergeFrom(value).buildPartial();
      } else {
        start_ = value;
      }

    }
    /**
     * <pre>
     * The padding on the start of the content, depending on the layout direction,
     * in DP and the value of "rtl_aware".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
     */
    private void clearStart() {  start_ = null;

    }

    public static final int TOP_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp top_;
    /**
     * <pre>
     * The padding at the top, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
     */
    @java.lang.Override
    public boolean hasTop() {
      return top_ != null;
    }
    /**
     * <pre>
     * The padding at the top, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getTop() {
      return top_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : top_;
    }
    /**
     * <pre>
     * The padding at the top, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
     */
    private void setTop(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  top_ = value;

      }
    /**
     * <pre>
     * The padding at the top, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeTop(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (top_ != null &&
          top_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        top_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(top_).mergeFrom(value).buildPartial();
      } else {
        top_ = value;
      }

    }
    /**
     * <pre>
     * The padding at the top, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
     */
    private void clearTop() {  top_ = null;

    }

    public static final int BOTTOM_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp bottom_;
    /**
     * <pre>
     * The padding at the bottom, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
     */
    @java.lang.Override
    public boolean hasBottom() {
      return bottom_ != null;
    }
    /**
     * <pre>
     * The padding at the bottom, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getBottom() {
      return bottom_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : bottom_;
    }
    /**
     * <pre>
     * The padding at the bottom, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
     */
    private void setBottom(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  bottom_ = value;

      }
    /**
     * <pre>
     * The padding at the bottom, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBottom(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (bottom_ != null &&
          bottom_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        bottom_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(bottom_).mergeFrom(value).buildPartial();
      } else {
        bottom_ = value;
      }

    }
    /**
     * <pre>
     * The padding at the bottom, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
     */
    private void clearBottom() {  bottom_ = null;

    }

    public static final int RTL_AWARE_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.TypesProto.BoolProp rtlAware_;
    /**
     * <pre>
     * Whether the start/end padding is aware of RTL support. If true, the values
     * for start/end will follow the layout direction (i.e. start will refer to
     * the right hand side of the container if the device is using an RTL locale).
     * If false, start/end will always map to left/right, accordingly.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
     */
    @java.lang.Override
    public boolean hasRtlAware() {
      return rtlAware_ != null;
    }
    /**
     * <pre>
     * Whether the start/end padding is aware of RTL support. If true, the values
     * for start/end will follow the layout direction (i.e. start will refer to
     * the right hand side of the container if the device is using an RTL locale).
     * If false, start/end will always map to left/right, accordingly.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.BoolProp getRtlAware() {
      return rtlAware_ == null ? androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance() : rtlAware_;
    }
    /**
     * <pre>
     * Whether the start/end padding is aware of RTL support. If true, the values
     * for start/end will follow the layout direction (i.e. start will refer to
     * the right hand side of the container if the device is using an RTL locale).
     * If false, start/end will always map to left/right, accordingly.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
     */
    private void setRtlAware(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  rtlAware_ = value;

      }
    /**
     * <pre>
     * Whether the start/end padding is aware of RTL support. If true, the values
     * for start/end will follow the layout direction (i.e. start will refer to
     * the right hand side of the container if the device is using an RTL locale).
     * If false, start/end will always map to left/right, accordingly.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeRtlAware(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  if (rtlAware_ != null &&
          rtlAware_ != androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance()) {
        rtlAware_ =
          androidx.wear.protolayout.proto.TypesProto.BoolProp.newBuilder(rtlAware_).mergeFrom(value).buildPartial();
      } else {
        rtlAware_ = value;
      }

    }
    /**
     * <pre>
     * Whether the start/end padding is aware of RTL support. If true, the values
     * for start/end will follow the layout direction (i.e. start will refer to
     * the right hand side of the container if the device is using an RTL locale).
     * If false, start/end will always map to left/right, accordingly.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
     */
    private void clearRtlAware() {  rtlAware_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Padding parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.Padding prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A modifier to apply padding around an element.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Padding}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.Padding, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Padding)
        androidx.wear.protolayout.proto.ModifiersProto.PaddingOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.Padding.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The padding on the end of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
       */
      @java.lang.Override
      public boolean hasEnd() {
        return instance.hasEnd();
      }
      /**
       * <pre>
       * The padding on the end of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getEnd() {
        return instance.getEnd();
      }
      /**
       * <pre>
       * The padding on the end of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
       */
      public Builder setEnd(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setEnd(value);
        return this;
        }
      /**
       * <pre>
       * The padding on the end of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
       */
      public Builder setEnd(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setEnd(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The padding on the end of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
       */
      public Builder mergeEnd(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeEnd(value);
        return this;
      }
      /**
       * <pre>
       * The padding on the end of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp end = 1;</code>
       */
      public Builder clearEnd() {  copyOnWrite();
        instance.clearEnd();
        return this;
      }

      /**
       * <pre>
       * The padding on the start of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
       */
      @java.lang.Override
      public boolean hasStart() {
        return instance.hasStart();
      }
      /**
       * <pre>
       * The padding on the start of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getStart() {
        return instance.getStart();
      }
      /**
       * <pre>
       * The padding on the start of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
       */
      public Builder setStart(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setStart(value);
        return this;
        }
      /**
       * <pre>
       * The padding on the start of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
       */
      public Builder setStart(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setStart(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The padding on the start of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
       */
      public Builder mergeStart(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeStart(value);
        return this;
      }
      /**
       * <pre>
       * The padding on the start of the content, depending on the layout direction,
       * in DP and the value of "rtl_aware".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp start = 2;</code>
       */
      public Builder clearStart() {  copyOnWrite();
        instance.clearStart();
        return this;
      }

      /**
       * <pre>
       * The padding at the top, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
       */
      @java.lang.Override
      public boolean hasTop() {
        return instance.hasTop();
      }
      /**
       * <pre>
       * The padding at the top, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getTop() {
        return instance.getTop();
      }
      /**
       * <pre>
       * The padding at the top, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
       */
      public Builder setTop(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setTop(value);
        return this;
        }
      /**
       * <pre>
       * The padding at the top, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
       */
      public Builder setTop(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setTop(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The padding at the top, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
       */
      public Builder mergeTop(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeTop(value);
        return this;
      }
      /**
       * <pre>
       * The padding at the top, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp top = 3;</code>
       */
      public Builder clearTop() {  copyOnWrite();
        instance.clearTop();
        return this;
      }

      /**
       * <pre>
       * The padding at the bottom, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
       */
      @java.lang.Override
      public boolean hasBottom() {
        return instance.hasBottom();
      }
      /**
       * <pre>
       * The padding at the bottom, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getBottom() {
        return instance.getBottom();
      }
      /**
       * <pre>
       * The padding at the bottom, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
       */
      public Builder setBottom(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setBottom(value);
        return this;
        }
      /**
       * <pre>
       * The padding at the bottom, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
       */
      public Builder setBottom(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setBottom(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The padding at the bottom, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
       */
      public Builder mergeBottom(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeBottom(value);
        return this;
      }
      /**
       * <pre>
       * The padding at the bottom, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp bottom = 4;</code>
       */
      public Builder clearBottom() {  copyOnWrite();
        instance.clearBottom();
        return this;
      }

      /**
       * <pre>
       * Whether the start/end padding is aware of RTL support. If true, the values
       * for start/end will follow the layout direction (i.e. start will refer to
       * the right hand side of the container if the device is using an RTL locale).
       * If false, start/end will always map to left/right, accordingly.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
       */
      @java.lang.Override
      public boolean hasRtlAware() {
        return instance.hasRtlAware();
      }
      /**
       * <pre>
       * Whether the start/end padding is aware of RTL support. If true, the values
       * for start/end will follow the layout direction (i.e. start will refer to
       * the right hand side of the container if the device is using an RTL locale).
       * If false, start/end will always map to left/right, accordingly.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.BoolProp getRtlAware() {
        return instance.getRtlAware();
      }
      /**
       * <pre>
       * Whether the start/end padding is aware of RTL support. If true, the values
       * for start/end will follow the layout direction (i.e. start will refer to
       * the right hand side of the container if the device is using an RTL locale).
       * If false, start/end will always map to left/right, accordingly.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
       */
      public Builder setRtlAware(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.setRtlAware(value);
        return this;
        }
      /**
       * <pre>
       * Whether the start/end padding is aware of RTL support. If true, the values
       * for start/end will follow the layout direction (i.e. start will refer to
       * the right hand side of the container if the device is using an RTL locale).
       * If false, start/end will always map to left/right, accordingly.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
       */
      public Builder setRtlAware(
          androidx.wear.protolayout.proto.TypesProto.BoolProp.Builder builderForValue) {
        copyOnWrite();
        instance.setRtlAware(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Whether the start/end padding is aware of RTL support. If true, the values
       * for start/end will follow the layout direction (i.e. start will refer to
       * the right hand side of the container if the device is using an RTL locale).
       * If false, start/end will always map to left/right, accordingly.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
       */
      public Builder mergeRtlAware(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.mergeRtlAware(value);
        return this;
      }
      /**
       * <pre>
       * Whether the start/end padding is aware of RTL support. If true, the values
       * for start/end will follow the layout direction (i.e. start will refer to
       * the right hand side of the container if the device is using an RTL locale).
       * If false, start/end will always map to left/right, accordingly.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rtl_aware = 5;</code>
       */
      public Builder clearRtlAware() {  copyOnWrite();
        instance.clearRtlAware();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Padding)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.Padding();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "end_",
              "start_",
              "top_",
              "bottom_",
              "rtlAware_",
            };
            java.lang.String info =
                "\u0000\u0005\u0000\u0000\u0001\u0005\u0005\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t\u0004\t\u0005\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.Padding> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.Padding.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.Padding>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.Padding)
    private static final androidx.wear.protolayout.proto.ModifiersProto.Padding DEFAULT_INSTANCE;
    static {
      Padding defaultInstance = new Padding();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Padding.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Padding getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Padding> PARSER;

    public static com.google.protobuf.Parser<Padding> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BorderOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Border)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The width of the border, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
     * @return Whether the width field is set.
     */
    boolean hasWidth();
    /**
     * <pre>
     * The width of the border, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
     * @return The width.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getWidth();

    /**
     * <pre>
     * The color of the border.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     * @return Whether the color field is set.
     */
    boolean hasColor();
    /**
     * <pre>
     * The color of the border.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     * @return The color.
     */
    androidx.wear.protolayout.proto.ColorProto.ColorProp getColor();
  }
  /**
   * <pre>
   * A modifier to apply a border around an element.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Border}
   */
  public  static final class Border extends
      com.google.protobuf.GeneratedMessageLite<
          Border, Border.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Border)
      BorderOrBuilder {
    private Border() {
    }
    public static final int WIDTH_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp width_;
    /**
     * <pre>
     * The width of the border, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
     */
    @java.lang.Override
    public boolean hasWidth() {
      return width_ != null;
    }
    /**
     * <pre>
     * The width of the border, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getWidth() {
      return width_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : width_;
    }
    /**
     * <pre>
     * The width of the border, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
     */
    private void setWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  width_ = value;

      }
    /**
     * <pre>
     * The width of the border, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (width_ != null &&
          width_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        width_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(width_).mergeFrom(value).buildPartial();
      } else {
        width_ = value;
      }

    }
    /**
     * <pre>
     * The width of the border, in DP.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
     */
    private void clearWidth() {  width_ = null;

    }

    public static final int COLOR_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ColorProto.ColorProp color_;
    /**
     * <pre>
     * The color of the border.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     */
    @java.lang.Override
    public boolean hasColor() {
      return color_ != null;
    }
    /**
     * <pre>
     * The color of the border.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ColorProto.ColorProp getColor() {
      return color_ == null ? androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance() : color_;
    }
    /**
     * <pre>
     * The color of the border.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     */
    private void setColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  color_ = value;

      }
    /**
     * <pre>
     * The color of the border.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  if (color_ != null &&
          color_ != androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance()) {
        color_ =
          androidx.wear.protolayout.proto.ColorProto.ColorProp.newBuilder(color_).mergeFrom(value).buildPartial();
      } else {
        color_ = value;
      }

    }
    /**
     * <pre>
     * The color of the border.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     */
    private void clearColor() {  color_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Border parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.Border prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A modifier to apply a border around an element.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Border}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.Border, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Border)
        androidx.wear.protolayout.proto.ModifiersProto.BorderOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.Border.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The width of the border, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
       */
      @java.lang.Override
      public boolean hasWidth() {
        return instance.hasWidth();
      }
      /**
       * <pre>
       * The width of the border, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getWidth() {
        return instance.getWidth();
      }
      /**
       * <pre>
       * The width of the border, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
       */
      public Builder setWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setWidth(value);
        return this;
        }
      /**
       * <pre>
       * The width of the border, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
       */
      public Builder setWidth(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setWidth(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The width of the border, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
       */
      public Builder mergeWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeWidth(value);
        return this;
      }
      /**
       * <pre>
       * The width of the border, in DP.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 1;</code>
       */
      public Builder clearWidth() {  copyOnWrite();
        instance.clearWidth();
        return this;
      }

      /**
       * <pre>
       * The color of the border.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      @java.lang.Override
      public boolean hasColor() {
        return instance.hasColor();
      }
      /**
       * <pre>
       * The color of the border.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ColorProto.ColorProp getColor() {
        return instance.getColor();
      }
      /**
       * <pre>
       * The color of the border.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      public Builder setColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.setColor(value);
        return this;
        }
      /**
       * <pre>
       * The color of the border.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      public Builder setColor(
          androidx.wear.protolayout.proto.ColorProto.ColorProp.Builder builderForValue) {
        copyOnWrite();
        instance.setColor(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The color of the border.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      public Builder mergeColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.mergeColor(value);
        return this;
      }
      /**
       * <pre>
       * The color of the border.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      public Builder clearColor() {  copyOnWrite();
        instance.clearColor();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Border)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.Border();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "width_",
              "color_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.Border> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.Border.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.Border>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.Border)
    private static final androidx.wear.protolayout.proto.ModifiersProto.Border DEFAULT_INSTANCE;
    static {
      Border defaultInstance = new Border();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Border.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Border getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Border> PARSER;

    public static com.google.protobuf.Parser<Border> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface CornerRadiusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.CornerRadius)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The radius value in dp on the horizontal axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
     * @return Whether the x field is set.
     */
    boolean hasX();
    /**
     * <pre>
     * The radius value in dp on the horizontal axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
     * @return The x.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getX();

    /**
     * <pre>
     * The radius value in dp on the vertical axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
     * @return Whether the y field is set.
     */
    boolean hasY();
    /**
     * <pre>
     * The radius value in dp on the vertical axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
     * @return The y.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getY();
  }
  /**
   * <pre>
   * A radius for either circular or elliptical shapes.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.CornerRadius}
   */
  public  static final class CornerRadius extends
      com.google.protobuf.GeneratedMessageLite<
          CornerRadius, CornerRadius.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.CornerRadius)
      CornerRadiusOrBuilder {
    private CornerRadius() {
    }
    public static final int X_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp x_;
    /**
     * <pre>
     * The radius value in dp on the horizontal axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
     */
    @java.lang.Override
    public boolean hasX() {
      return x_ != null;
    }
    /**
     * <pre>
     * The radius value in dp on the horizontal axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getX() {
      return x_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : x_;
    }
    /**
     * <pre>
     * The radius value in dp on the horizontal axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
     */
    private void setX(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  x_ = value;

      }
    /**
     * <pre>
     * The radius value in dp on the horizontal axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeX(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (x_ != null &&
          x_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        x_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(x_).mergeFrom(value).buildPartial();
      } else {
        x_ = value;
      }

    }
    /**
     * <pre>
     * The radius value in dp on the horizontal axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
     */
    private void clearX() {  x_ = null;

    }

    public static final int Y_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp y_;
    /**
     * <pre>
     * The radius value in dp on the vertical axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
     */
    @java.lang.Override
    public boolean hasY() {
      return y_ != null;
    }
    /**
     * <pre>
     * The radius value in dp on the vertical axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getY() {
      return y_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : y_;
    }
    /**
     * <pre>
     * The radius value in dp on the vertical axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
     */
    private void setY(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  y_ = value;

      }
    /**
     * <pre>
     * The radius value in dp on the vertical axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeY(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (y_ != null &&
          y_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        y_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(y_).mergeFrom(value).buildPartial();
      } else {
        y_ = value;
      }

    }
    /**
     * <pre>
     * The radius value in dp on the vertical axis.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
     */
    private void clearY() {  y_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A radius for either circular or elliptical shapes.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.CornerRadius}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.CornerRadius, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.CornerRadius)
        androidx.wear.protolayout.proto.ModifiersProto.CornerRadiusOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The radius value in dp on the horizontal axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
       */
      @java.lang.Override
      public boolean hasX() {
        return instance.hasX();
      }
      /**
       * <pre>
       * The radius value in dp on the horizontal axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getX() {
        return instance.getX();
      }
      /**
       * <pre>
       * The radius value in dp on the horizontal axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
       */
      public Builder setX(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setX(value);
        return this;
        }
      /**
       * <pre>
       * The radius value in dp on the horizontal axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
       */
      public Builder setX(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setX(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The radius value in dp on the horizontal axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
       */
      public Builder mergeX(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeX(value);
        return this;
      }
      /**
       * <pre>
       * The radius value in dp on the horizontal axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp x = 1;</code>
       */
      public Builder clearX() {  copyOnWrite();
        instance.clearX();
        return this;
      }

      /**
       * <pre>
       * The radius value in dp on the vertical axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
       */
      @java.lang.Override
      public boolean hasY() {
        return instance.hasY();
      }
      /**
       * <pre>
       * The radius value in dp on the vertical axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getY() {
        return instance.getY();
      }
      /**
       * <pre>
       * The radius value in dp on the vertical axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
       */
      public Builder setY(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setY(value);
        return this;
        }
      /**
       * <pre>
       * The radius value in dp on the vertical axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
       */
      public Builder setY(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setY(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The radius value in dp on the vertical axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
       */
      public Builder mergeY(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeY(value);
        return this;
      }
      /**
       * <pre>
       * The radius value in dp on the vertical axis.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp y = 2;</code>
       */
      public Builder clearY() {  copyOnWrite();
        instance.clearY();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.CornerRadius)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.CornerRadius();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "x_",
              "y_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.CornerRadius> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.CornerRadius>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.CornerRadius)
    private static final androidx.wear.protolayout.proto.ModifiersProto.CornerRadius DEFAULT_INSTANCE;
    static {
      CornerRadius defaultInstance = new CornerRadius();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        CornerRadius.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<CornerRadius> PARSER;

    public static com.google.protobuf.Parser<CornerRadius> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface CornerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Corner)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The radius of the corner in DP.
     * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
     * @return Whether the radius field is set.
     */
    boolean hasRadius();
    /**
     * <pre>
     * The radius of the corner in DP.
     * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
     * @return The radius.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getRadius();

    /**
     * <pre>
     * The radius for the top-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
     * @return Whether the topLeftRadius field is set.
     */
    boolean hasTopLeftRadius();
    /**
     * <pre>
     * The radius for the top-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
     * @return The topLeftRadius.
     */
    androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getTopLeftRadius();

    /**
     * <pre>
     * The radius for the top-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
     * @return Whether the topRightRadius field is set.
     */
    boolean hasTopRightRadius();
    /**
     * <pre>
     * The radius for the top-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
     * @return The topRightRadius.
     */
    androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getTopRightRadius();

    /**
     * <pre>
     * The radius for the bottom-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
     * @return Whether the bottomRightRadius field is set.
     */
    boolean hasBottomRightRadius();
    /**
     * <pre>
     * The radius for the bottom-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
     * @return The bottomRightRadius.
     */
    androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getBottomRightRadius();

    /**
     * <pre>
     * The radius for the bottom-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
     * @return Whether the bottomLeftRadius field is set.
     */
    boolean hasBottomLeftRadius();
    /**
     * <pre>
     * The radius for the bottom-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
     * @return The bottomLeftRadius.
     */
    androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getBottomLeftRadius();
  }
  /**
   * <pre>
   * The corner of a Box element.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Corner}
   */
  public  static final class Corner extends
      com.google.protobuf.GeneratedMessageLite<
          Corner, Corner.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Corner)
      CornerOrBuilder {
    private Corner() {
    }
    public static final int RADIUS_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp radius_;
    /**
     * <pre>
     * The radius of the corner in DP.
     * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
     */
    @java.lang.Override
    public boolean hasRadius() {
      return radius_ != null;
    }
    /**
     * <pre>
     * The radius of the corner in DP.
     * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getRadius() {
      return radius_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : radius_;
    }
    /**
     * <pre>
     * The radius of the corner in DP.
     * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
     */
    private void setRadius(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  radius_ = value;

      }
    /**
     * <pre>
     * The radius of the corner in DP.
     * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeRadius(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (radius_ != null &&
          radius_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        radius_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(radius_).mergeFrom(value).buildPartial();
      } else {
        radius_ = value;
      }

    }
    /**
     * <pre>
     * The radius of the corner in DP.
     * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
     */
    private void clearRadius() {  radius_ = null;

    }

    public static final int TOP_LEFT_RADIUS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ModifiersProto.CornerRadius topLeftRadius_;
    /**
     * <pre>
     * The radius for the top-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
     */
    @java.lang.Override
    public boolean hasTopLeftRadius() {
      return topLeftRadius_ != null;
    }
    /**
     * <pre>
     * The radius for the top-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getTopLeftRadius() {
      return topLeftRadius_ == null ? androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.getDefaultInstance() : topLeftRadius_;
    }
    /**
     * <pre>
     * The radius for the top-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
     */
    private void setTopLeftRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
      value.getClass();
  topLeftRadius_ = value;

      }
    /**
     * <pre>
     * The radius for the top-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeTopLeftRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
      value.getClass();
  if (topLeftRadius_ != null &&
          topLeftRadius_ != androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.getDefaultInstance()) {
        topLeftRadius_ =
          androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.newBuilder(topLeftRadius_).mergeFrom(value).buildPartial();
      } else {
        topLeftRadius_ = value;
      }

    }
    /**
     * <pre>
     * The radius for the top-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
     */
    private void clearTopLeftRadius() {  topLeftRadius_ = null;

    }

    public static final int TOP_RIGHT_RADIUS_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.ModifiersProto.CornerRadius topRightRadius_;
    /**
     * <pre>
     * The radius for the top-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
     */
    @java.lang.Override
    public boolean hasTopRightRadius() {
      return topRightRadius_ != null;
    }
    /**
     * <pre>
     * The radius for the top-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getTopRightRadius() {
      return topRightRadius_ == null ? androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.getDefaultInstance() : topRightRadius_;
    }
    /**
     * <pre>
     * The radius for the top-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
     */
    private void setTopRightRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
      value.getClass();
  topRightRadius_ = value;

      }
    /**
     * <pre>
     * The radius for the top-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeTopRightRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
      value.getClass();
  if (topRightRadius_ != null &&
          topRightRadius_ != androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.getDefaultInstance()) {
        topRightRadius_ =
          androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.newBuilder(topRightRadius_).mergeFrom(value).buildPartial();
      } else {
        topRightRadius_ = value;
      }

    }
    /**
     * <pre>
     * The radius for the top-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
     */
    private void clearTopRightRadius() {  topRightRadius_ = null;

    }

    public static final int BOTTOM_RIGHT_RADIUS_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.ModifiersProto.CornerRadius bottomRightRadius_;
    /**
     * <pre>
     * The radius for the bottom-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
     */
    @java.lang.Override
    public boolean hasBottomRightRadius() {
      return bottomRightRadius_ != null;
    }
    /**
     * <pre>
     * The radius for the bottom-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getBottomRightRadius() {
      return bottomRightRadius_ == null ? androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.getDefaultInstance() : bottomRightRadius_;
    }
    /**
     * <pre>
     * The radius for the bottom-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
     */
    private void setBottomRightRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
      value.getClass();
  bottomRightRadius_ = value;

      }
    /**
     * <pre>
     * The radius for the bottom-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBottomRightRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
      value.getClass();
  if (bottomRightRadius_ != null &&
          bottomRightRadius_ != androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.getDefaultInstance()) {
        bottomRightRadius_ =
          androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.newBuilder(bottomRightRadius_).mergeFrom(value).buildPartial();
      } else {
        bottomRightRadius_ = value;
      }

    }
    /**
     * <pre>
     * The radius for the bottom-right corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
     */
    private void clearBottomRightRadius() {  bottomRightRadius_ = null;

    }

    public static final int BOTTOM_LEFT_RADIUS_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.ModifiersProto.CornerRadius bottomLeftRadius_;
    /**
     * <pre>
     * The radius for the bottom-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
     */
    @java.lang.Override
    public boolean hasBottomLeftRadius() {
      return bottomLeftRadius_ != null;
    }
    /**
     * <pre>
     * The radius for the bottom-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getBottomLeftRadius() {
      return bottomLeftRadius_ == null ? androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.getDefaultInstance() : bottomLeftRadius_;
    }
    /**
     * <pre>
     * The radius for the bottom-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
     */
    private void setBottomLeftRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
      value.getClass();
  bottomLeftRadius_ = value;

      }
    /**
     * <pre>
     * The radius for the bottom-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBottomLeftRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
      value.getClass();
  if (bottomLeftRadius_ != null &&
          bottomLeftRadius_ != androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.getDefaultInstance()) {
        bottomLeftRadius_ =
          androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.newBuilder(bottomLeftRadius_).mergeFrom(value).buildPartial();
      } else {
        bottomLeftRadius_ = value;
      }

    }
    /**
     * <pre>
     * The radius for the bottom-left corner of either circular or elliptical shapes.
     * If not set, defaults to radius for both horizontal and vertical
     * axes when radius is set; or defaults to zeros when radius is also not set.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
     */
    private void clearBottomLeftRadius() {  bottomLeftRadius_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Corner parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.Corner prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The corner of a Box element.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Corner}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.Corner, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Corner)
        androidx.wear.protolayout.proto.ModifiersProto.CornerOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.Corner.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The radius of the corner in DP.
       * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
       */
      @java.lang.Override
      public boolean hasRadius() {
        return instance.hasRadius();
      }
      /**
       * <pre>
       * The radius of the corner in DP.
       * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getRadius() {
        return instance.getRadius();
      }
      /**
       * <pre>
       * The radius of the corner in DP.
       * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
       */
      public Builder setRadius(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setRadius(value);
        return this;
        }
      /**
       * <pre>
       * The radius of the corner in DP.
       * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
       */
      public Builder setRadius(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setRadius(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The radius of the corner in DP.
       * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
       */
      public Builder mergeRadius(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeRadius(value);
        return this;
      }
      /**
       * <pre>
       * The radius of the corner in DP.
       * &lt;p&gt;The shape for a specific corner can be overridden by setting that corner separately.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp radius = 1;</code>
       */
      public Builder clearRadius() {  copyOnWrite();
        instance.clearRadius();
        return this;
      }

      /**
       * <pre>
       * The radius for the top-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
       */
      @java.lang.Override
      public boolean hasTopLeftRadius() {
        return instance.hasTopLeftRadius();
      }
      /**
       * <pre>
       * The radius for the top-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getTopLeftRadius() {
        return instance.getTopLeftRadius();
      }
      /**
       * <pre>
       * The radius for the top-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
       */
      public Builder setTopLeftRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
        copyOnWrite();
        instance.setTopLeftRadius(value);
        return this;
        }
      /**
       * <pre>
       * The radius for the top-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
       */
      public Builder setTopLeftRadius(
          androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.Builder builderForValue) {
        copyOnWrite();
        instance.setTopLeftRadius(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The radius for the top-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
       */
      public Builder mergeTopLeftRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
        copyOnWrite();
        instance.mergeTopLeftRadius(value);
        return this;
      }
      /**
       * <pre>
       * The radius for the top-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_left_radius = 2;</code>
       */
      public Builder clearTopLeftRadius() {  copyOnWrite();
        instance.clearTopLeftRadius();
        return this;
      }

      /**
       * <pre>
       * The radius for the top-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
       */
      @java.lang.Override
      public boolean hasTopRightRadius() {
        return instance.hasTopRightRadius();
      }
      /**
       * <pre>
       * The radius for the top-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getTopRightRadius() {
        return instance.getTopRightRadius();
      }
      /**
       * <pre>
       * The radius for the top-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
       */
      public Builder setTopRightRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
        copyOnWrite();
        instance.setTopRightRadius(value);
        return this;
        }
      /**
       * <pre>
       * The radius for the top-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
       */
      public Builder setTopRightRadius(
          androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.Builder builderForValue) {
        copyOnWrite();
        instance.setTopRightRadius(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The radius for the top-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
       */
      public Builder mergeTopRightRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
        copyOnWrite();
        instance.mergeTopRightRadius(value);
        return this;
      }
      /**
       * <pre>
       * The radius for the top-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius top_right_radius = 3;</code>
       */
      public Builder clearTopRightRadius() {  copyOnWrite();
        instance.clearTopRightRadius();
        return this;
      }

      /**
       * <pre>
       * The radius for the bottom-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
       */
      @java.lang.Override
      public boolean hasBottomRightRadius() {
        return instance.hasBottomRightRadius();
      }
      /**
       * <pre>
       * The radius for the bottom-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getBottomRightRadius() {
        return instance.getBottomRightRadius();
      }
      /**
       * <pre>
       * The radius for the bottom-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
       */
      public Builder setBottomRightRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
        copyOnWrite();
        instance.setBottomRightRadius(value);
        return this;
        }
      /**
       * <pre>
       * The radius for the bottom-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
       */
      public Builder setBottomRightRadius(
          androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.Builder builderForValue) {
        copyOnWrite();
        instance.setBottomRightRadius(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The radius for the bottom-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
       */
      public Builder mergeBottomRightRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
        copyOnWrite();
        instance.mergeBottomRightRadius(value);
        return this;
      }
      /**
       * <pre>
       * The radius for the bottom-right corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_right_radius = 4;</code>
       */
      public Builder clearBottomRightRadius() {  copyOnWrite();
        instance.clearBottomRightRadius();
        return this;
      }

      /**
       * <pre>
       * The radius for the bottom-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
       */
      @java.lang.Override
      public boolean hasBottomLeftRadius() {
        return instance.hasBottomLeftRadius();
      }
      /**
       * <pre>
       * The radius for the bottom-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.CornerRadius getBottomLeftRadius() {
        return instance.getBottomLeftRadius();
      }
      /**
       * <pre>
       * The radius for the bottom-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
       */
      public Builder setBottomLeftRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
        copyOnWrite();
        instance.setBottomLeftRadius(value);
        return this;
        }
      /**
       * <pre>
       * The radius for the bottom-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
       */
      public Builder setBottomLeftRadius(
          androidx.wear.protolayout.proto.ModifiersProto.CornerRadius.Builder builderForValue) {
        copyOnWrite();
        instance.setBottomLeftRadius(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The radius for the bottom-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
       */
      public Builder mergeBottomLeftRadius(androidx.wear.protolayout.proto.ModifiersProto.CornerRadius value) {
        copyOnWrite();
        instance.mergeBottomLeftRadius(value);
        return this;
      }
      /**
       * <pre>
       * The radius for the bottom-left corner of either circular or elliptical shapes.
       * If not set, defaults to radius for both horizontal and vertical
       * axes when radius is set; or defaults to zeros when radius is also not set.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.CornerRadius bottom_left_radius = 5;</code>
       */
      public Builder clearBottomLeftRadius() {  copyOnWrite();
        instance.clearBottomLeftRadius();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Corner)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.Corner();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "radius_",
              "topLeftRadius_",
              "topRightRadius_",
              "bottomRightRadius_",
              "bottomLeftRadius_",
            };
            java.lang.String info =
                "\u0000\u0005\u0000\u0000\u0001\u0005\u0005\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t\u0004\t\u0005\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.Corner> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.Corner.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.Corner>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.Corner)
    private static final androidx.wear.protolayout.proto.ModifiersProto.Corner DEFAULT_INSTANCE;
    static {
      Corner defaultInstance = new Corner();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Corner.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Corner getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Corner> PARSER;

    public static com.google.protobuf.Parser<Corner> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BackgroundOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Background)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The background color for this element. If not defined, defaults to being
     * transparent.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
     * @return Whether the color field is set.
     */
    boolean hasColor();
    /**
     * <pre>
     * The background color for this element. If not defined, defaults to being
     * transparent.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
     * @return The color.
     */
    androidx.wear.protolayout.proto.ColorProto.ColorProp getColor();

    /**
     * <pre>
     * The corner properties of this element. This only affects the drawing of
     * this element if it has a background color or border. If not defined,
     * defaults to having a square corner.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
     * @return Whether the corner field is set.
     */
    boolean hasCorner();
    /**
     * <pre>
     * The corner properties of this element. This only affects the drawing of
     * this element if it has a background color or border. If not defined,
     * defaults to having a square corner.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
     * @return The corner.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Corner getCorner();
  }
  /**
   * <pre>
   * A modifier to apply a background to an element.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Background}
   */
  public  static final class Background extends
      com.google.protobuf.GeneratedMessageLite<
          Background, Background.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Background)
      BackgroundOrBuilder {
    private Background() {
    }
    public static final int COLOR_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.ColorProto.ColorProp color_;
    /**
     * <pre>
     * The background color for this element. If not defined, defaults to being
     * transparent.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
     */
    @java.lang.Override
    public boolean hasColor() {
      return color_ != null;
    }
    /**
     * <pre>
     * The background color for this element. If not defined, defaults to being
     * transparent.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ColorProto.ColorProp getColor() {
      return color_ == null ? androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance() : color_;
    }
    /**
     * <pre>
     * The background color for this element. If not defined, defaults to being
     * transparent.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
     */
    private void setColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  color_ = value;

      }
    /**
     * <pre>
     * The background color for this element. If not defined, defaults to being
     * transparent.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  if (color_ != null &&
          color_ != androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance()) {
        color_ =
          androidx.wear.protolayout.proto.ColorProto.ColorProp.newBuilder(color_).mergeFrom(value).buildPartial();
      } else {
        color_ = value;
      }

    }
    /**
     * <pre>
     * The background color for this element. If not defined, defaults to being
     * transparent.
     *
     * While this field is statically accessible from 1.0, it's only bindable
     * since version 1.2 and renderers supporting version 1.2 will use the dynamic
     * value (if set).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
     */
    private void clearColor() {  color_ = null;

    }

    public static final int CORNER_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ModifiersProto.Corner corner_;
    /**
     * <pre>
     * The corner properties of this element. This only affects the drawing of
     * this element if it has a background color or border. If not defined,
     * defaults to having a square corner.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
     */
    @java.lang.Override
    public boolean hasCorner() {
      return corner_ != null;
    }
    /**
     * <pre>
     * The corner properties of this element. This only affects the drawing of
     * this element if it has a background color or border. If not defined,
     * defaults to having a square corner.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Corner getCorner() {
      return corner_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Corner.getDefaultInstance() : corner_;
    }
    /**
     * <pre>
     * The corner properties of this element. This only affects the drawing of
     * this element if it has a background color or border. If not defined,
     * defaults to having a square corner.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
     */
    private void setCorner(androidx.wear.protolayout.proto.ModifiersProto.Corner value) {
      value.getClass();
  corner_ = value;

      }
    /**
     * <pre>
     * The corner properties of this element. This only affects the drawing of
     * this element if it has a background color or border. If not defined,
     * defaults to having a square corner.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeCorner(androidx.wear.protolayout.proto.ModifiersProto.Corner value) {
      value.getClass();
  if (corner_ != null &&
          corner_ != androidx.wear.protolayout.proto.ModifiersProto.Corner.getDefaultInstance()) {
        corner_ =
          androidx.wear.protolayout.proto.ModifiersProto.Corner.newBuilder(corner_).mergeFrom(value).buildPartial();
      } else {
        corner_ = value;
      }

    }
    /**
     * <pre>
     * The corner properties of this element. This only affects the drawing of
     * this element if it has a background color or border. If not defined,
     * defaults to having a square corner.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
     */
    private void clearCorner() {  corner_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Background parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.Background prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A modifier to apply a background to an element.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Background}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.Background, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Background)
        androidx.wear.protolayout.proto.ModifiersProto.BackgroundOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.Background.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The background color for this element. If not defined, defaults to being
       * transparent.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
       */
      @java.lang.Override
      public boolean hasColor() {
        return instance.hasColor();
      }
      /**
       * <pre>
       * The background color for this element. If not defined, defaults to being
       * transparent.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ColorProto.ColorProp getColor() {
        return instance.getColor();
      }
      /**
       * <pre>
       * The background color for this element. If not defined, defaults to being
       * transparent.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
       */
      public Builder setColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.setColor(value);
        return this;
        }
      /**
       * <pre>
       * The background color for this element. If not defined, defaults to being
       * transparent.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
       */
      public Builder setColor(
          androidx.wear.protolayout.proto.ColorProto.ColorProp.Builder builderForValue) {
        copyOnWrite();
        instance.setColor(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The background color for this element. If not defined, defaults to being
       * transparent.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
       */
      public Builder mergeColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.mergeColor(value);
        return this;
      }
      /**
       * <pre>
       * The background color for this element. If not defined, defaults to being
       * transparent.
       *
       * While this field is statically accessible from 1.0, it's only bindable
       * since version 1.2 and renderers supporting version 1.2 will use the dynamic
       * value (if set).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 1;</code>
       */
      public Builder clearColor() {  copyOnWrite();
        instance.clearColor();
        return this;
      }

      /**
       * <pre>
       * The corner properties of this element. This only affects the drawing of
       * this element if it has a background color or border. If not defined,
       * defaults to having a square corner.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
       */
      @java.lang.Override
      public boolean hasCorner() {
        return instance.hasCorner();
      }
      /**
       * <pre>
       * The corner properties of this element. This only affects the drawing of
       * this element if it has a background color or border. If not defined,
       * defaults to having a square corner.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Corner getCorner() {
        return instance.getCorner();
      }
      /**
       * <pre>
       * The corner properties of this element. This only affects the drawing of
       * this element if it has a background color or border. If not defined,
       * defaults to having a square corner.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
       */
      public Builder setCorner(androidx.wear.protolayout.proto.ModifiersProto.Corner value) {
        copyOnWrite();
        instance.setCorner(value);
        return this;
        }
      /**
       * <pre>
       * The corner properties of this element. This only affects the drawing of
       * this element if it has a background color or border. If not defined,
       * defaults to having a square corner.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
       */
      public Builder setCorner(
          androidx.wear.protolayout.proto.ModifiersProto.Corner.Builder builderForValue) {
        copyOnWrite();
        instance.setCorner(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The corner properties of this element. This only affects the drawing of
       * this element if it has a background color or border. If not defined,
       * defaults to having a square corner.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
       */
      public Builder mergeCorner(androidx.wear.protolayout.proto.ModifiersProto.Corner value) {
        copyOnWrite();
        instance.mergeCorner(value);
        return this;
      }
      /**
       * <pre>
       * The corner properties of this element. This only affects the drawing of
       * this element if it has a background color or border. If not defined,
       * defaults to having a square corner.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Corner corner = 2;</code>
       */
      public Builder clearCorner() {  copyOnWrite();
        instance.clearCorner();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Background)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.Background();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "color_",
              "corner_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.Background> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.Background.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.Background>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.Background)
    private static final androidx.wear.protolayout.proto.ModifiersProto.Background DEFAULT_INSTANCE;
    static {
      Background defaultInstance = new Background();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Background.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Background getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Background> PARSER;

    public static com.google.protobuf.Parser<Background> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ElementMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ElementMetadata)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Property describing the element with which it is associated. For use by
     * libraries building higher-level components only. This can be used to track
     * component metadata.
     * </pre>
     *
     * <code>bytes tag_data = 1;</code>
     * @return The tagData.
     */
    com.google.protobuf.ByteString getTagData();
  }
  /**
   * <pre>
   * Metadata about an element. For use by libraries building higher-level
   * components only. This can be used to track component metadata.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ElementMetadata}
   */
  public  static final class ElementMetadata extends
      com.google.protobuf.GeneratedMessageLite<
          ElementMetadata, ElementMetadata.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ElementMetadata)
      ElementMetadataOrBuilder {
    private ElementMetadata() {
      tagData_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TAG_DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString tagData_;
    /**
     * <pre>
     * Property describing the element with which it is associated. For use by
     * libraries building higher-level components only. This can be used to track
     * component metadata.
     * </pre>
     *
     * <code>bytes tag_data = 1;</code>
     * @return The tagData.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTagData() {
      return tagData_;
    }
    /**
     * <pre>
     * Property describing the element with which it is associated. For use by
     * libraries building higher-level components only. This can be used to track
     * component metadata.
     * </pre>
     *
     * <code>bytes tag_data = 1;</code>
     * @param value The tagData to set.
     */
    private void setTagData(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      tagData_ = value;
    }
    /**
     * <pre>
     * Property describing the element with which it is associated. For use by
     * libraries building higher-level components only. This can be used to track
     * component metadata.
     * </pre>
     *
     * <code>bytes tag_data = 1;</code>
     */
    private void clearTagData() {

      tagData_ = getDefaultInstance().getTagData();
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Metadata about an element. For use by libraries building higher-level
     * components only. This can be used to track component metadata.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ElementMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ElementMetadata)
        androidx.wear.protolayout.proto.ModifiersProto.ElementMetadataOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Property describing the element with which it is associated. For use by
       * libraries building higher-level components only. This can be used to track
       * component metadata.
       * </pre>
       *
       * <code>bytes tag_data = 1;</code>
       * @return The tagData.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTagData() {
        return instance.getTagData();
      }
      /**
       * <pre>
       * Property describing the element with which it is associated. For use by
       * libraries building higher-level components only. This can be used to track
       * component metadata.
       * </pre>
       *
       * <code>bytes tag_data = 1;</code>
       * @param value The tagData to set.
       * @return This builder for chaining.
       */
      public Builder setTagData(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTagData(value);
        return this;
      }
      /**
       * <pre>
       * Property describing the element with which it is associated. For use by
       * libraries building higher-level components only. This can be used to track
       * component metadata.
       * </pre>
       *
       * <code>bytes tag_data = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTagData() {
        copyOnWrite();
        instance.clearTagData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ElementMetadata)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "tagData_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ElementMetadata)
    private static final androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata DEFAULT_INSTANCE;
    static {
      ElementMetadata defaultInstance = new ElementMetadata();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ElementMetadata.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ElementMetadata> PARSER;

    public static com.google.protobuf.Parser<ElementMetadata> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface TransformationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Transformation)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The horizontal offset of this element relative to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
     * @return Whether the translationX field is set.
     */
    boolean hasTranslationX();
    /**
     * <pre>
     * The horizontal offset of this element relative to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
     * @return The translationX.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getTranslationX();

    /**
     * <pre>
     * The vertical offset of this element in addition to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
     * @return Whether the translationY field is set.
     */
    boolean hasTranslationY();
    /**
     * <pre>
     * The vertical offset of this element in addition to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
     * @return The translationY.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getTranslationY();

    /**
     * <pre>
     * The scale of this element in the x direction around the pivot point, as a
     * proportion of the element's unscaled width .
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
     * @return Whether the scaleX field is set.
     */
    boolean hasScaleX();
    /**
     * <pre>
     * The scale of this element in the x direction around the pivot point, as a
     * proportion of the element's unscaled width .
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
     * @return The scaleX.
     */
    androidx.wear.protolayout.proto.TypesProto.FloatProp getScaleX();

    /**
     * <pre>
     * The scale of this element in the y direction around the pivot point, as a
     * proportion of the element's unscaled height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
     * @return Whether the scaleY field is set.
     */
    boolean hasScaleY();
    /**
     * <pre>
     * The scale of this element in the y direction around the pivot point, as a
     * proportion of the element's unscaled height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
     * @return The scaleY.
     */
    androidx.wear.protolayout.proto.TypesProto.FloatProp getScaleY();

    /**
     * <pre>
     * The clockwise degrees that the element is rotated around the pivot point.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
     * @return Whether the rotation field is set.
     */
    boolean hasRotation();
    /**
     * <pre>
     * The clockwise degrees that the element is rotated around the pivot point.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
     * @return The rotation.
     */
    androidx.wear.protolayout.proto.DimensionProto.DegreesProp getRotation();

    /**
     * <pre>
     * The horizontal location of the point around which the element is rotated
     * and scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box width.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
     * @return Whether the pivotX field is set.
     */
    boolean hasPivotX();
    /**
     * <pre>
     * The horizontal location of the point around which the element is rotated
     * and scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box width.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
     * @return The pivotX.
     */
    androidx.wear.protolayout.proto.DimensionProto.PivotDimension getPivotX();

    /**
     * <pre>
     * The vertical location of the point around which the element is rotated and
     * scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
     * @return Whether the pivotY field is set.
     */
    boolean hasPivotY();
    /**
     * <pre>
     * The vertical location of the point around which the element is rotated and
     * scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
     * @return The pivotY.
     */
    androidx.wear.protolayout.proto.DimensionProto.PivotDimension getPivotY();
  }
  /**
   * <pre>
   * A modifier to apply transformations to the element. All of these
   * transformations can be animated by setting dynamic values.
   * This modifier is not layout affecting.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Transformation}
   */
  public  static final class Transformation extends
      com.google.protobuf.GeneratedMessageLite<
          Transformation, Transformation.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Transformation)
      TransformationOrBuilder {
    private Transformation() {
    }
    public static final int TRANSLATION_X_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp translationX_;
    /**
     * <pre>
     * The horizontal offset of this element relative to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
     */
    @java.lang.Override
    public boolean hasTranslationX() {
      return translationX_ != null;
    }
    /**
     * <pre>
     * The horizontal offset of this element relative to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getTranslationX() {
      return translationX_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : translationX_;
    }
    /**
     * <pre>
     * The horizontal offset of this element relative to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
     */
    private void setTranslationX(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  translationX_ = value;

      }
    /**
     * <pre>
     * The horizontal offset of this element relative to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeTranslationX(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (translationX_ != null &&
          translationX_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        translationX_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(translationX_).mergeFrom(value).buildPartial();
      } else {
        translationX_ = value;
      }

    }
    /**
     * <pre>
     * The horizontal offset of this element relative to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
     */
    private void clearTranslationX() {  translationX_ = null;

    }

    public static final int TRANSLATION_Y_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp translationY_;
    /**
     * <pre>
     * The vertical offset of this element in addition to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
     */
    @java.lang.Override
    public boolean hasTranslationY() {
      return translationY_ != null;
    }
    /**
     * <pre>
     * The vertical offset of this element in addition to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getTranslationY() {
      return translationY_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : translationY_;
    }
    /**
     * <pre>
     * The vertical offset of this element in addition to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
     */
    private void setTranslationY(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  translationY_ = value;

      }
    /**
     * <pre>
     * The vertical offset of this element in addition to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeTranslationY(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (translationY_ != null &&
          translationY_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        translationY_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(translationY_).mergeFrom(value).buildPartial();
      } else {
        translationY_ = value;
      }

    }
    /**
     * <pre>
     * The vertical offset of this element in addition to the location where the
     * element's layout placed it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
     */
    private void clearTranslationY() {  translationY_ = null;

    }

    public static final int SCALE_X_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.TypesProto.FloatProp scaleX_;
    /**
     * <pre>
     * The scale of this element in the x direction around the pivot point, as a
     * proportion of the element's unscaled width .
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
     */
    @java.lang.Override
    public boolean hasScaleX() {
      return scaleX_ != null;
    }
    /**
     * <pre>
     * The scale of this element in the x direction around the pivot point, as a
     * proportion of the element's unscaled width .
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.FloatProp getScaleX() {
      return scaleX_ == null ? androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance() : scaleX_;
    }
    /**
     * <pre>
     * The scale of this element in the x direction around the pivot point, as a
     * proportion of the element's unscaled width .
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
     */
    private void setScaleX(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  scaleX_ = value;

      }
    /**
     * <pre>
     * The scale of this element in the x direction around the pivot point, as a
     * proportion of the element's unscaled width .
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeScaleX(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  if (scaleX_ != null &&
          scaleX_ != androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance()) {
        scaleX_ =
          androidx.wear.protolayout.proto.TypesProto.FloatProp.newBuilder(scaleX_).mergeFrom(value).buildPartial();
      } else {
        scaleX_ = value;
      }

    }
    /**
     * <pre>
     * The scale of this element in the x direction around the pivot point, as a
     * proportion of the element's unscaled width .
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
     */
    private void clearScaleX() {  scaleX_ = null;

    }

    public static final int SCALE_Y_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.TypesProto.FloatProp scaleY_;
    /**
     * <pre>
     * The scale of this element in the y direction around the pivot point, as a
     * proportion of the element's unscaled height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
     */
    @java.lang.Override
    public boolean hasScaleY() {
      return scaleY_ != null;
    }
    /**
     * <pre>
     * The scale of this element in the y direction around the pivot point, as a
     * proportion of the element's unscaled height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.FloatProp getScaleY() {
      return scaleY_ == null ? androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance() : scaleY_;
    }
    /**
     * <pre>
     * The scale of this element in the y direction around the pivot point, as a
     * proportion of the element's unscaled height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
     */
    private void setScaleY(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  scaleY_ = value;

      }
    /**
     * <pre>
     * The scale of this element in the y direction around the pivot point, as a
     * proportion of the element's unscaled height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeScaleY(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  if (scaleY_ != null &&
          scaleY_ != androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance()) {
        scaleY_ =
          androidx.wear.protolayout.proto.TypesProto.FloatProp.newBuilder(scaleY_).mergeFrom(value).buildPartial();
      } else {
        scaleY_ = value;
      }

    }
    /**
     * <pre>
     * The scale of this element in the y direction around the pivot point, as a
     * proportion of the element's unscaled height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
     */
    private void clearScaleY() {  scaleY_ = null;

    }

    public static final int ROTATION_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.DimensionProto.DegreesProp rotation_;
    /**
     * <pre>
     * The clockwise degrees that the element is rotated around the pivot point.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
     */
    @java.lang.Override
    public boolean hasRotation() {
      return rotation_ != null;
    }
    /**
     * <pre>
     * The clockwise degrees that the element is rotated around the pivot point.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getRotation() {
      return rotation_ == null ? androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance() : rotation_;
    }
    /**
     * <pre>
     * The clockwise degrees that the element is rotated around the pivot point.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
     */
    private void setRotation(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  rotation_ = value;

      }
    /**
     * <pre>
     * The clockwise degrees that the element is rotated around the pivot point.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeRotation(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  if (rotation_ != null &&
          rotation_ != androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance()) {
        rotation_ =
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.newBuilder(rotation_).mergeFrom(value).buildPartial();
      } else {
        rotation_ = value;
      }

    }
    /**
     * <pre>
     * The clockwise degrees that the element is rotated around the pivot point.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
     */
    private void clearRotation() {  rotation_ = null;

    }

    public static final int PIVOT_X_FIELD_NUMBER = 6;
    private androidx.wear.protolayout.proto.DimensionProto.PivotDimension pivotX_;
    /**
     * <pre>
     * The horizontal location of the point around which the element is rotated
     * and scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box width.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
     */
    @java.lang.Override
    public boolean hasPivotX() {
      return pivotX_ != null;
    }
    /**
     * <pre>
     * The horizontal location of the point around which the element is rotated
     * and scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box width.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.PivotDimension getPivotX() {
      return pivotX_ == null ? androidx.wear.protolayout.proto.DimensionProto.PivotDimension.getDefaultInstance() : pivotX_;
    }
    /**
     * <pre>
     * The horizontal location of the point around which the element is rotated
     * and scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box width.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
     */
    private void setPivotX(androidx.wear.protolayout.proto.DimensionProto.PivotDimension value) {
      value.getClass();
  pivotX_ = value;

      }
    /**
     * <pre>
     * The horizontal location of the point around which the element is rotated
     * and scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box width.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergePivotX(androidx.wear.protolayout.proto.DimensionProto.PivotDimension value) {
      value.getClass();
  if (pivotX_ != null &&
          pivotX_ != androidx.wear.protolayout.proto.DimensionProto.PivotDimension.getDefaultInstance()) {
        pivotX_ =
          androidx.wear.protolayout.proto.DimensionProto.PivotDimension.newBuilder(pivotX_).mergeFrom(value).buildPartial();
      } else {
        pivotX_ = value;
      }

    }
    /**
     * <pre>
     * The horizontal location of the point around which the element is rotated
     * and scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box width.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
     */
    private void clearPivotX() {  pivotX_ = null;

    }

    public static final int PIVOT_Y_FIELD_NUMBER = 7;
    private androidx.wear.protolayout.proto.DimensionProto.PivotDimension pivotY_;
    /**
     * <pre>
     * The vertical location of the point around which the element is rotated and
     * scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
     */
    @java.lang.Override
    public boolean hasPivotY() {
      return pivotY_ != null;
    }
    /**
     * <pre>
     * The vertical location of the point around which the element is rotated and
     * scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.PivotDimension getPivotY() {
      return pivotY_ == null ? androidx.wear.protolayout.proto.DimensionProto.PivotDimension.getDefaultInstance() : pivotY_;
    }
    /**
     * <pre>
     * The vertical location of the point around which the element is rotated and
     * scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
     */
    private void setPivotY(androidx.wear.protolayout.proto.DimensionProto.PivotDimension value) {
      value.getClass();
  pivotY_ = value;

      }
    /**
     * <pre>
     * The vertical location of the point around which the element is rotated and
     * scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergePivotY(androidx.wear.protolayout.proto.DimensionProto.PivotDimension value) {
      value.getClass();
  if (pivotY_ != null &&
          pivotY_ != androidx.wear.protolayout.proto.DimensionProto.PivotDimension.getDefaultInstance()) {
        pivotY_ =
          androidx.wear.protolayout.proto.DimensionProto.PivotDimension.newBuilder(pivotY_).mergeFrom(value).buildPartial();
      } else {
        pivotY_ = value;
      }

    }
    /**
     * <pre>
     * The vertical location of the point around which the element is rotated and
     * scaled. With type DpProp, it is the offset from the element center;
     * otherwise with type BoundingBoxRatio, it is the location proportional to
     * the bounding box height.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
     */
    private void clearPivotY() {  pivotY_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.Transformation prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A modifier to apply transformations to the element. All of these
     * transformations can be animated by setting dynamic values.
     * This modifier is not layout affecting.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Transformation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.Transformation, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Transformation)
        androidx.wear.protolayout.proto.ModifiersProto.TransformationOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.Transformation.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The horizontal offset of this element relative to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
       */
      @java.lang.Override
      public boolean hasTranslationX() {
        return instance.hasTranslationX();
      }
      /**
       * <pre>
       * The horizontal offset of this element relative to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getTranslationX() {
        return instance.getTranslationX();
      }
      /**
       * <pre>
       * The horizontal offset of this element relative to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
       */
      public Builder setTranslationX(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setTranslationX(value);
        return this;
        }
      /**
       * <pre>
       * The horizontal offset of this element relative to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
       */
      public Builder setTranslationX(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setTranslationX(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The horizontal offset of this element relative to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
       */
      public Builder mergeTranslationX(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeTranslationX(value);
        return this;
      }
      /**
       * <pre>
       * The horizontal offset of this element relative to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_x = 1;</code>
       */
      public Builder clearTranslationX() {  copyOnWrite();
        instance.clearTranslationX();
        return this;
      }

      /**
       * <pre>
       * The vertical offset of this element in addition to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
       */
      @java.lang.Override
      public boolean hasTranslationY() {
        return instance.hasTranslationY();
      }
      /**
       * <pre>
       * The vertical offset of this element in addition to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getTranslationY() {
        return instance.getTranslationY();
      }
      /**
       * <pre>
       * The vertical offset of this element in addition to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
       */
      public Builder setTranslationY(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setTranslationY(value);
        return this;
        }
      /**
       * <pre>
       * The vertical offset of this element in addition to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
       */
      public Builder setTranslationY(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setTranslationY(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The vertical offset of this element in addition to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
       */
      public Builder mergeTranslationY(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeTranslationY(value);
        return this;
      }
      /**
       * <pre>
       * The vertical offset of this element in addition to the location where the
       * element's layout placed it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp translation_y = 2;</code>
       */
      public Builder clearTranslationY() {  copyOnWrite();
        instance.clearTranslationY();
        return this;
      }

      /**
       * <pre>
       * The scale of this element in the x direction around the pivot point, as a
       * proportion of the element's unscaled width .
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
       */
      @java.lang.Override
      public boolean hasScaleX() {
        return instance.hasScaleX();
      }
      /**
       * <pre>
       * The scale of this element in the x direction around the pivot point, as a
       * proportion of the element's unscaled width .
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.FloatProp getScaleX() {
        return instance.getScaleX();
      }
      /**
       * <pre>
       * The scale of this element in the x direction around the pivot point, as a
       * proportion of the element's unscaled width .
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
       */
      public Builder setScaleX(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.setScaleX(value);
        return this;
        }
      /**
       * <pre>
       * The scale of this element in the x direction around the pivot point, as a
       * proportion of the element's unscaled width .
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
       */
      public Builder setScaleX(
          androidx.wear.protolayout.proto.TypesProto.FloatProp.Builder builderForValue) {
        copyOnWrite();
        instance.setScaleX(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The scale of this element in the x direction around the pivot point, as a
       * proportion of the element's unscaled width .
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
       */
      public Builder mergeScaleX(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.mergeScaleX(value);
        return this;
      }
      /**
       * <pre>
       * The scale of this element in the x direction around the pivot point, as a
       * proportion of the element's unscaled width .
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_x = 3;</code>
       */
      public Builder clearScaleX() {  copyOnWrite();
        instance.clearScaleX();
        return this;
      }

      /**
       * <pre>
       * The scale of this element in the y direction around the pivot point, as a
       * proportion of the element's unscaled height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
       */
      @java.lang.Override
      public boolean hasScaleY() {
        return instance.hasScaleY();
      }
      /**
       * <pre>
       * The scale of this element in the y direction around the pivot point, as a
       * proportion of the element's unscaled height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.FloatProp getScaleY() {
        return instance.getScaleY();
      }
      /**
       * <pre>
       * The scale of this element in the y direction around the pivot point, as a
       * proportion of the element's unscaled height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
       */
      public Builder setScaleY(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.setScaleY(value);
        return this;
        }
      /**
       * <pre>
       * The scale of this element in the y direction around the pivot point, as a
       * proportion of the element's unscaled height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
       */
      public Builder setScaleY(
          androidx.wear.protolayout.proto.TypesProto.FloatProp.Builder builderForValue) {
        copyOnWrite();
        instance.setScaleY(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The scale of this element in the y direction around the pivot point, as a
       * proportion of the element's unscaled height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
       */
      public Builder mergeScaleY(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.mergeScaleY(value);
        return this;
      }
      /**
       * <pre>
       * The scale of this element in the y direction around the pivot point, as a
       * proportion of the element's unscaled height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp scale_y = 4;</code>
       */
      public Builder clearScaleY() {  copyOnWrite();
        instance.clearScaleY();
        return this;
      }

      /**
       * <pre>
       * The clockwise degrees that the element is rotated around the pivot point.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
       */
      @java.lang.Override
      public boolean hasRotation() {
        return instance.hasRotation();
      }
      /**
       * <pre>
       * The clockwise degrees that the element is rotated around the pivot point.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getRotation() {
        return instance.getRotation();
      }
      /**
       * <pre>
       * The clockwise degrees that the element is rotated around the pivot point.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
       */
      public Builder setRotation(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.setRotation(value);
        return this;
        }
      /**
       * <pre>
       * The clockwise degrees that the element is rotated around the pivot point.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
       */
      public Builder setRotation(
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.Builder builderForValue) {
        copyOnWrite();
        instance.setRotation(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The clockwise degrees that the element is rotated around the pivot point.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
       */
      public Builder mergeRotation(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.mergeRotation(value);
        return this;
      }
      /**
       * <pre>
       * The clockwise degrees that the element is rotated around the pivot point.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp rotation = 5;</code>
       */
      public Builder clearRotation() {  copyOnWrite();
        instance.clearRotation();
        return this;
      }

      /**
       * <pre>
       * The horizontal location of the point around which the element is rotated
       * and scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box width.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
       */
      @java.lang.Override
      public boolean hasPivotX() {
        return instance.hasPivotX();
      }
      /**
       * <pre>
       * The horizontal location of the point around which the element is rotated
       * and scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box width.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.PivotDimension getPivotX() {
        return instance.getPivotX();
      }
      /**
       * <pre>
       * The horizontal location of the point around which the element is rotated
       * and scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box width.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
       */
      public Builder setPivotX(androidx.wear.protolayout.proto.DimensionProto.PivotDimension value) {
        copyOnWrite();
        instance.setPivotX(value);
        return this;
        }
      /**
       * <pre>
       * The horizontal location of the point around which the element is rotated
       * and scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box width.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
       */
      public Builder setPivotX(
          androidx.wear.protolayout.proto.DimensionProto.PivotDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setPivotX(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The horizontal location of the point around which the element is rotated
       * and scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box width.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
       */
      public Builder mergePivotX(androidx.wear.protolayout.proto.DimensionProto.PivotDimension value) {
        copyOnWrite();
        instance.mergePivotX(value);
        return this;
      }
      /**
       * <pre>
       * The horizontal location of the point around which the element is rotated
       * and scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box width.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_x = 6;</code>
       */
      public Builder clearPivotX() {  copyOnWrite();
        instance.clearPivotX();
        return this;
      }

      /**
       * <pre>
       * The vertical location of the point around which the element is rotated and
       * scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
       */
      @java.lang.Override
      public boolean hasPivotY() {
        return instance.hasPivotY();
      }
      /**
       * <pre>
       * The vertical location of the point around which the element is rotated and
       * scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.PivotDimension getPivotY() {
        return instance.getPivotY();
      }
      /**
       * <pre>
       * The vertical location of the point around which the element is rotated and
       * scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
       */
      public Builder setPivotY(androidx.wear.protolayout.proto.DimensionProto.PivotDimension value) {
        copyOnWrite();
        instance.setPivotY(value);
        return this;
        }
      /**
       * <pre>
       * The vertical location of the point around which the element is rotated and
       * scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
       */
      public Builder setPivotY(
          androidx.wear.protolayout.proto.DimensionProto.PivotDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setPivotY(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The vertical location of the point around which the element is rotated and
       * scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
       */
      public Builder mergePivotY(androidx.wear.protolayout.proto.DimensionProto.PivotDimension value) {
        copyOnWrite();
        instance.mergePivotY(value);
        return this;
      }
      /**
       * <pre>
       * The vertical location of the point around which the element is rotated and
       * scaled. With type DpProp, it is the offset from the element center;
       * otherwise with type BoundingBoxRatio, it is the location proportional to
       * the bounding box height.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.PivotDimension pivot_y = 7;</code>
       */
      public Builder clearPivotY() {  copyOnWrite();
        instance.clearPivotY();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Transformation)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.Transformation();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "translationX_",
              "translationY_",
              "scaleX_",
              "scaleY_",
              "rotation_",
              "pivotX_",
              "pivotY_",
            };
            java.lang.String info =
                "\u0000\u0007\u0000\u0000\u0001\u0007\u0007\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t\u0004\t\u0005\t\u0006\t\u0007\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.Transformation> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.Transformation.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.Transformation>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.Transformation)
    private static final androidx.wear.protolayout.proto.ModifiersProto.Transformation DEFAULT_INSTANCE;
    static {
      Transformation defaultInstance = new Transformation();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Transformation.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Transformation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Transformation> PARSER;

    public static com.google.protobuf.Parser<Transformation> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ModifiersOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Modifiers)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The clickable property of the modified element. It allows its wrapped
     * element to have actions associated with it, which will be executed when the
     * element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     * @return Whether the clickable field is set.
     */
    boolean hasClickable();
    /**
     * <pre>
     * The clickable property of the modified element. It allows its wrapped
     * element to have actions associated with it, which will be executed when the
     * element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     * @return The clickable.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Clickable getClickable();

    /**
     * <pre>
     * The semantics of the modified element. This can be used to add metadata to
     * the modified element (eg. screen reader content descriptions).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     * @return Whether the semantics field is set.
     */
    boolean hasSemantics();
    /**
     * <pre>
     * The semantics of the modified element. This can be used to add metadata to
     * the modified element (eg. screen reader content descriptions).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     * @return The semantics.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Semantics getSemantics();

    /**
     * <pre>
     * The padding of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
     * @return Whether the padding field is set.
     */
    boolean hasPadding();
    /**
     * <pre>
     * The padding of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
     * @return The padding.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Padding getPadding();

    /**
     * <pre>
     * The border of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
     * @return Whether the border field is set.
     */
    boolean hasBorder();
    /**
     * <pre>
     * The border of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
     * @return The border.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Border getBorder();

    /**
     * <pre>
     * The background (with optional corner radius) of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
     * @return Whether the background field is set.
     */
    boolean hasBackground();
    /**
     * <pre>
     * The background (with optional corner radius) of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
     * @return The background.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Background getBackground();

    /**
     * <pre>
     * Metadata about an element. For use by libraries building higher-level
     * components only. This can be used to track component metadata
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
     * @return Whether the metadata field is set.
     */
    boolean hasMetadata();
    /**
     * <pre>
     * Metadata about an element. For use by libraries building higher-level
     * components only. This can be used to track component metadata
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
     * @return The metadata.
     */
    androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata getMetadata();

    /**
     * <pre>
     * The content transition of an element. Any update to the element or its
     * children will trigger this animation for this element and everything
     * underneath it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
     * @return Whether the contentUpdateAnimation field is set.
     */
    boolean hasContentUpdateAnimation();
    /**
     * <pre>
     * The content transition of an element. Any update to the element or its
     * children will trigger this animation for this element and everything
     * underneath it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
     * @return The contentUpdateAnimation.
     */
    androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility getContentUpdateAnimation();

    /**
     * <pre>
     * Whether the attached element is hidden, or visible. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     *
     * Defaults to false (i.e. not hidden).
     * This field is deprecated and is only kept for backward compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
     * @return Whether the hidden field is set.
     */
    boolean hasHidden();
    /**
     * <pre>
     * Whether the attached element is hidden, or visible. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     *
     * Defaults to false (i.e. not hidden).
     * This field is deprecated and is only kept for backward compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
     * @return The hidden.
     */
    androidx.wear.protolayout.proto.TypesProto.BoolProp getHidden();

    /**
     * <pre>
     * The optional identifier for the layout element.
     * </pre>
     *
     * <code>string id = 9;</code>
     * @return The id.
     */
    java.lang.String getId();
    /**
     * <pre>
     * The optional identifier for the layout element.
     * </pre>
     *
     * <code>string id = 9;</code>
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * <pre>
     * Whether the attached element is visible, or hidden. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents. Defaults to
     * visible.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
     * @return Whether the visible field is set.
     */
    boolean hasVisible();
    /**
     * <pre>
     * Whether the attached element is visible, or hidden. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents. Defaults to
     * visible.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
     * @return The visible.
     */
    androidx.wear.protolayout.proto.TypesProto.BoolProp getVisible();

    /**
     * <pre>
     * The transformation applied to the element post-layout
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
     * @return Whether the transformation field is set.
     */
    boolean hasTransformation();
    /**
     * <pre>
     * The transformation applied to the element post-layout
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
     * @return The transformation.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Transformation getTransformation();

    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
     * @return Whether the opacity field is set.
     */
    boolean hasOpacity();
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
     * @return The opacity.
     */
    androidx.wear.protolayout.proto.TypesProto.FloatProp getOpacity();
  }
  /**
   * <pre>
   * Modifiers for an element. These may change the way they are drawn (e.g.
   * Padding or Background), or change their behaviour (e.g. Clickable, or
   * Semantics).
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Modifiers}
   */
  public  static final class Modifiers extends
      com.google.protobuf.GeneratedMessageLite<
          Modifiers, Modifiers.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Modifiers)
      ModifiersOrBuilder {
    private Modifiers() {
      id_ = "";
    }
    public static final int CLICKABLE_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.ModifiersProto.Clickable clickable_;
    /**
     * <pre>
     * The clickable property of the modified element. It allows its wrapped
     * element to have actions associated with it, which will be executed when the
     * element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    @java.lang.Override
    public boolean hasClickable() {
      return clickable_ != null;
    }
    /**
     * <pre>
     * The clickable property of the modified element. It allows its wrapped
     * element to have actions associated with it, which will be executed when the
     * element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Clickable getClickable() {
      return clickable_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Clickable.getDefaultInstance() : clickable_;
    }
    /**
     * <pre>
     * The clickable property of the modified element. It allows its wrapped
     * element to have actions associated with it, which will be executed when the
     * element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    private void setClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
      value.getClass();
  clickable_ = value;

      }
    /**
     * <pre>
     * The clickable property of the modified element. It allows its wrapped
     * element to have actions associated with it, which will be executed when the
     * element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
      value.getClass();
  if (clickable_ != null &&
          clickable_ != androidx.wear.protolayout.proto.ModifiersProto.Clickable.getDefaultInstance()) {
        clickable_ =
          androidx.wear.protolayout.proto.ModifiersProto.Clickable.newBuilder(clickable_).mergeFrom(value).buildPartial();
      } else {
        clickable_ = value;
      }

    }
    /**
     * <pre>
     * The clickable property of the modified element. It allows its wrapped
     * element to have actions associated with it, which will be executed when the
     * element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    private void clearClickable() {  clickable_ = null;

    }

    public static final int SEMANTICS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ModifiersProto.Semantics semantics_;
    /**
     * <pre>
     * The semantics of the modified element. This can be used to add metadata to
     * the modified element (eg. screen reader content descriptions).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     */
    @java.lang.Override
    public boolean hasSemantics() {
      return semantics_ != null;
    }
    /**
     * <pre>
     * The semantics of the modified element. This can be used to add metadata to
     * the modified element (eg. screen reader content descriptions).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Semantics getSemantics() {
      return semantics_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Semantics.getDefaultInstance() : semantics_;
    }
    /**
     * <pre>
     * The semantics of the modified element. This can be used to add metadata to
     * the modified element (eg. screen reader content descriptions).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     */
    private void setSemantics(androidx.wear.protolayout.proto.ModifiersProto.Semantics value) {
      value.getClass();
  semantics_ = value;

      }
    /**
     * <pre>
     * The semantics of the modified element. This can be used to add metadata to
     * the modified element (eg. screen reader content descriptions).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSemantics(androidx.wear.protolayout.proto.ModifiersProto.Semantics value) {
      value.getClass();
  if (semantics_ != null &&
          semantics_ != androidx.wear.protolayout.proto.ModifiersProto.Semantics.getDefaultInstance()) {
        semantics_ =
          androidx.wear.protolayout.proto.ModifiersProto.Semantics.newBuilder(semantics_).mergeFrom(value).buildPartial();
      } else {
        semantics_ = value;
      }

    }
    /**
     * <pre>
     * The semantics of the modified element. This can be used to add metadata to
     * the modified element (eg. screen reader content descriptions).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     */
    private void clearSemantics() {  semantics_ = null;

    }

    public static final int PADDING_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.ModifiersProto.Padding padding_;
    /**
     * <pre>
     * The padding of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
     */
    @java.lang.Override
    public boolean hasPadding() {
      return padding_ != null;
    }
    /**
     * <pre>
     * The padding of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Padding getPadding() {
      return padding_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Padding.getDefaultInstance() : padding_;
    }
    /**
     * <pre>
     * The padding of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
     */
    private void setPadding(androidx.wear.protolayout.proto.ModifiersProto.Padding value) {
      value.getClass();
  padding_ = value;

      }
    /**
     * <pre>
     * The padding of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergePadding(androidx.wear.protolayout.proto.ModifiersProto.Padding value) {
      value.getClass();
  if (padding_ != null &&
          padding_ != androidx.wear.protolayout.proto.ModifiersProto.Padding.getDefaultInstance()) {
        padding_ =
          androidx.wear.protolayout.proto.ModifiersProto.Padding.newBuilder(padding_).mergeFrom(value).buildPartial();
      } else {
        padding_ = value;
      }

    }
    /**
     * <pre>
     * The padding of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
     */
    private void clearPadding() {  padding_ = null;

    }

    public static final int BORDER_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.ModifiersProto.Border border_;
    /**
     * <pre>
     * The border of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
     */
    @java.lang.Override
    public boolean hasBorder() {
      return border_ != null;
    }
    /**
     * <pre>
     * The border of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Border getBorder() {
      return border_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Border.getDefaultInstance() : border_;
    }
    /**
     * <pre>
     * The border of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
     */
    private void setBorder(androidx.wear.protolayout.proto.ModifiersProto.Border value) {
      value.getClass();
  border_ = value;

      }
    /**
     * <pre>
     * The border of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBorder(androidx.wear.protolayout.proto.ModifiersProto.Border value) {
      value.getClass();
  if (border_ != null &&
          border_ != androidx.wear.protolayout.proto.ModifiersProto.Border.getDefaultInstance()) {
        border_ =
          androidx.wear.protolayout.proto.ModifiersProto.Border.newBuilder(border_).mergeFrom(value).buildPartial();
      } else {
        border_ = value;
      }

    }
    /**
     * <pre>
     * The border of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
     */
    private void clearBorder() {  border_ = null;

    }

    public static final int BACKGROUND_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.ModifiersProto.Background background_;
    /**
     * <pre>
     * The background (with optional corner radius) of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
     */
    @java.lang.Override
    public boolean hasBackground() {
      return background_ != null;
    }
    /**
     * <pre>
     * The background (with optional corner radius) of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Background getBackground() {
      return background_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Background.getDefaultInstance() : background_;
    }
    /**
     * <pre>
     * The background (with optional corner radius) of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
     */
    private void setBackground(androidx.wear.protolayout.proto.ModifiersProto.Background value) {
      value.getClass();
  background_ = value;

      }
    /**
     * <pre>
     * The background (with optional corner radius) of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBackground(androidx.wear.protolayout.proto.ModifiersProto.Background value) {
      value.getClass();
  if (background_ != null &&
          background_ != androidx.wear.protolayout.proto.ModifiersProto.Background.getDefaultInstance()) {
        background_ =
          androidx.wear.protolayout.proto.ModifiersProto.Background.newBuilder(background_).mergeFrom(value).buildPartial();
      } else {
        background_ = value;
      }

    }
    /**
     * <pre>
     * The background (with optional corner radius) of the modified element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
     */
    private void clearBackground() {  background_ = null;

    }

    public static final int METADATA_FIELD_NUMBER = 6;
    private androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata metadata_;
    /**
     * <pre>
     * Metadata about an element. For use by libraries building higher-level
     * components only. This can be used to track component metadata
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
     */
    @java.lang.Override
    public boolean hasMetadata() {
      return metadata_ != null;
    }
    /**
     * <pre>
     * Metadata about an element. For use by libraries building higher-level
     * components only. This can be used to track component metadata
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata getMetadata() {
      return metadata_ == null ? androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata.getDefaultInstance() : metadata_;
    }
    /**
     * <pre>
     * Metadata about an element. For use by libraries building higher-level
     * components only. This can be used to track component metadata
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
     */
    private void setMetadata(androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata value) {
      value.getClass();
  metadata_ = value;

      }
    /**
     * <pre>
     * Metadata about an element. For use by libraries building higher-level
     * components only. This can be used to track component metadata
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMetadata(androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata value) {
      value.getClass();
  if (metadata_ != null &&
          metadata_ != androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata.getDefaultInstance()) {
        metadata_ =
          androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata.newBuilder(metadata_).mergeFrom(value).buildPartial();
      } else {
        metadata_ = value;
      }

    }
    /**
     * <pre>
     * Metadata about an element. For use by libraries building higher-level
     * components only. This can be used to track component metadata
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
     */
    private void clearMetadata() {  metadata_ = null;

    }

    public static final int CONTENT_UPDATE_ANIMATION_FIELD_NUMBER = 7;
    private androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility contentUpdateAnimation_;
    /**
     * <pre>
     * The content transition of an element. Any update to the element or its
     * children will trigger this animation for this element and everything
     * underneath it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
     */
    @java.lang.Override
    public boolean hasContentUpdateAnimation() {
      return contentUpdateAnimation_ != null;
    }
    /**
     * <pre>
     * The content transition of an element. Any update to the element or its
     * children will trigger this animation for this element and everything
     * underneath it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility getContentUpdateAnimation() {
      return contentUpdateAnimation_ == null ? androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility.getDefaultInstance() : contentUpdateAnimation_;
    }
    /**
     * <pre>
     * The content transition of an element. Any update to the element or its
     * children will trigger this animation for this element and everything
     * underneath it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
     */
    private void setContentUpdateAnimation(androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility value) {
      value.getClass();
  contentUpdateAnimation_ = value;

      }
    /**
     * <pre>
     * The content transition of an element. Any update to the element or its
     * children will trigger this animation for this element and everything
     * underneath it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeContentUpdateAnimation(androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility value) {
      value.getClass();
  if (contentUpdateAnimation_ != null &&
          contentUpdateAnimation_ != androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility.getDefaultInstance()) {
        contentUpdateAnimation_ =
          androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility.newBuilder(contentUpdateAnimation_).mergeFrom(value).buildPartial();
      } else {
        contentUpdateAnimation_ = value;
      }

    }
    /**
     * <pre>
     * The content transition of an element. Any update to the element or its
     * children will trigger this animation for this element and everything
     * underneath it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
     */
    private void clearContentUpdateAnimation() {  contentUpdateAnimation_ = null;

    }

    public static final int HIDDEN_FIELD_NUMBER = 8;
    private androidx.wear.protolayout.proto.TypesProto.BoolProp hidden_;
    /**
     * <pre>
     * Whether the attached element is hidden, or visible. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     *
     * Defaults to false (i.e. not hidden).
     * This field is deprecated and is only kept for backward compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
     */
    @java.lang.Override
    public boolean hasHidden() {
      return hidden_ != null;
    }
    /**
     * <pre>
     * Whether the attached element is hidden, or visible. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     *
     * Defaults to false (i.e. not hidden).
     * This field is deprecated and is only kept for backward compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.BoolProp getHidden() {
      return hidden_ == null ? androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance() : hidden_;
    }
    /**
     * <pre>
     * Whether the attached element is hidden, or visible. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     *
     * Defaults to false (i.e. not hidden).
     * This field is deprecated and is only kept for backward compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
     */
    private void setHidden(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  hidden_ = value;

      }
    /**
     * <pre>
     * Whether the attached element is hidden, or visible. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     *
     * Defaults to false (i.e. not hidden).
     * This field is deprecated and is only kept for backward compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeHidden(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  if (hidden_ != null &&
          hidden_ != androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance()) {
        hidden_ =
          androidx.wear.protolayout.proto.TypesProto.BoolProp.newBuilder(hidden_).mergeFrom(value).buildPartial();
      } else {
        hidden_ = value;
      }

    }
    /**
     * <pre>
     * Whether the attached element is hidden, or visible. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     *
     * Defaults to false (i.e. not hidden).
     * This field is deprecated and is only kept for backward compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
     */
    private void clearHidden() {  hidden_ = null;

    }

    public static final int ID_FIELD_NUMBER = 9;
    private java.lang.String id_;
    /**
     * <pre>
     * The optional identifier for the layout element.
     * </pre>
     *
     * <code>string id = 9;</code>
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      return id_;
    }
    /**
     * <pre>
     * The optional identifier for the layout element.
     * </pre>
     *
     * <code>string id = 9;</code>
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(id_);
    }
    /**
     * <pre>
     * The optional identifier for the layout element.
     * </pre>
     *
     * <code>string id = 9;</code>
     * @param value The id to set.
     */
    private void setId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      id_ = value;
    }
    /**
     * <pre>
     * The optional identifier for the layout element.
     * </pre>
     *
     * <code>string id = 9;</code>
     */
    private void clearId() {

      id_ = getDefaultInstance().getId();
    }
    /**
     * <pre>
     * The optional identifier for the layout element.
     * </pre>
     *
     * <code>string id = 9;</code>
     * @param value The bytes for id to set.
     */
    private void setIdBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      id_ = value.toStringUtf8();

    }

    public static final int VISIBLE_FIELD_NUMBER = 10;
    private androidx.wear.protolayout.proto.TypesProto.BoolProp visible_;
    /**
     * <pre>
     * Whether the attached element is visible, or hidden. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents. Defaults to
     * visible.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
     */
    @java.lang.Override
    public boolean hasVisible() {
      return visible_ != null;
    }
    /**
     * <pre>
     * Whether the attached element is visible, or hidden. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents. Defaults to
     * visible.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.BoolProp getVisible() {
      return visible_ == null ? androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance() : visible_;
    }
    /**
     * <pre>
     * Whether the attached element is visible, or hidden. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents. Defaults to
     * visible.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
     */
    private void setVisible(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  visible_ = value;

      }
    /**
     * <pre>
     * Whether the attached element is visible, or hidden. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents. Defaults to
     * visible.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeVisible(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  if (visible_ != null &&
          visible_ != androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance()) {
        visible_ =
          androidx.wear.protolayout.proto.TypesProto.BoolProp.newBuilder(visible_).mergeFrom(value).buildPartial();
      } else {
        visible_ = value;
      }

    }
    /**
     * <pre>
     * Whether the attached element is visible, or hidden. If the element is
     * hidden, then it will still consume space in the layout, but will not render
     * any contents, nor will any children render any contents. Defaults to
     * visible.
     *
     * Note that a hidden element also cannot be clickable (i.e. a Clickable
     * modifier would be ignored).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
     */
    private void clearVisible() {  visible_ = null;

    }

    public static final int TRANSFORMATION_FIELD_NUMBER = 11;
    private androidx.wear.protolayout.proto.ModifiersProto.Transformation transformation_;
    /**
     * <pre>
     * The transformation applied to the element post-layout
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
     */
    @java.lang.Override
    public boolean hasTransformation() {
      return transformation_ != null;
    }
    /**
     * <pre>
     * The transformation applied to the element post-layout
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Transformation getTransformation() {
      return transformation_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Transformation.getDefaultInstance() : transformation_;
    }
    /**
     * <pre>
     * The transformation applied to the element post-layout
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
     */
    private void setTransformation(androidx.wear.protolayout.proto.ModifiersProto.Transformation value) {
      value.getClass();
  transformation_ = value;

      }
    /**
     * <pre>
     * The transformation applied to the element post-layout
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeTransformation(androidx.wear.protolayout.proto.ModifiersProto.Transformation value) {
      value.getClass();
  if (transformation_ != null &&
          transformation_ != androidx.wear.protolayout.proto.ModifiersProto.Transformation.getDefaultInstance()) {
        transformation_ =
          androidx.wear.protolayout.proto.ModifiersProto.Transformation.newBuilder(transformation_).mergeFrom(value).buildPartial();
      } else {
        transformation_ = value;
      }

    }
    /**
     * <pre>
     * The transformation applied to the element post-layout
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
     */
    private void clearTransformation() {  transformation_ = null;

    }

    public static final int OPACITY_FIELD_NUMBER = 12;
    private androidx.wear.protolayout.proto.TypesProto.FloatProp opacity_;
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
     */
    @java.lang.Override
    public boolean hasOpacity() {
      return opacity_ != null;
    }
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.FloatProp getOpacity() {
      return opacity_ == null ? androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance() : opacity_;
    }
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
     */
    private void setOpacity(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  opacity_ = value;

      }
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeOpacity(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  if (opacity_ != null &&
          opacity_ != androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance()) {
        opacity_ =
          androidx.wear.protolayout.proto.TypesProto.FloatProp.newBuilder(opacity_).mergeFrom(value).buildPartial();
      } else {
        opacity_ = value;
      }

    }
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
     */
    private void clearOpacity() {  opacity_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.Modifiers prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Modifiers for an element. These may change the way they are drawn (e.g.
     * Padding or Background), or change their behaviour (e.g. Clickable, or
     * Semantics).
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Modifiers}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Modifiers)
        androidx.wear.protolayout.proto.ModifiersProto.ModifiersOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.Modifiers.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The clickable property of the modified element. It allows its wrapped
       * element to have actions associated with it, which will be executed when the
       * element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      @java.lang.Override
      public boolean hasClickable() {
        return instance.hasClickable();
      }
      /**
       * <pre>
       * The clickable property of the modified element. It allows its wrapped
       * element to have actions associated with it, which will be executed when the
       * element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Clickable getClickable() {
        return instance.getClickable();
      }
      /**
       * <pre>
       * The clickable property of the modified element. It allows its wrapped
       * element to have actions associated with it, which will be executed when the
       * element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder setClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
        copyOnWrite();
        instance.setClickable(value);
        return this;
        }
      /**
       * <pre>
       * The clickable property of the modified element. It allows its wrapped
       * element to have actions associated with it, which will be executed when the
       * element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder setClickable(
          androidx.wear.protolayout.proto.ModifiersProto.Clickable.Builder builderForValue) {
        copyOnWrite();
        instance.setClickable(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The clickable property of the modified element. It allows its wrapped
       * element to have actions associated with it, which will be executed when the
       * element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder mergeClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
        copyOnWrite();
        instance.mergeClickable(value);
        return this;
      }
      /**
       * <pre>
       * The clickable property of the modified element. It allows its wrapped
       * element to have actions associated with it, which will be executed when the
       * element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder clearClickable() {  copyOnWrite();
        instance.clearClickable();
        return this;
      }

      /**
       * <pre>
       * The semantics of the modified element. This can be used to add metadata to
       * the modified element (eg. screen reader content descriptions).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      @java.lang.Override
      public boolean hasSemantics() {
        return instance.hasSemantics();
      }
      /**
       * <pre>
       * The semantics of the modified element. This can be used to add metadata to
       * the modified element (eg. screen reader content descriptions).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Semantics getSemantics() {
        return instance.getSemantics();
      }
      /**
       * <pre>
       * The semantics of the modified element. This can be used to add metadata to
       * the modified element (eg. screen reader content descriptions).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      public Builder setSemantics(androidx.wear.protolayout.proto.ModifiersProto.Semantics value) {
        copyOnWrite();
        instance.setSemantics(value);
        return this;
        }
      /**
       * <pre>
       * The semantics of the modified element. This can be used to add metadata to
       * the modified element (eg. screen reader content descriptions).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      public Builder setSemantics(
          androidx.wear.protolayout.proto.ModifiersProto.Semantics.Builder builderForValue) {
        copyOnWrite();
        instance.setSemantics(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The semantics of the modified element. This can be used to add metadata to
       * the modified element (eg. screen reader content descriptions).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      public Builder mergeSemantics(androidx.wear.protolayout.proto.ModifiersProto.Semantics value) {
        copyOnWrite();
        instance.mergeSemantics(value);
        return this;
      }
      /**
       * <pre>
       * The semantics of the modified element. This can be used to add metadata to
       * the modified element (eg. screen reader content descriptions).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      public Builder clearSemantics() {  copyOnWrite();
        instance.clearSemantics();
        return this;
      }

      /**
       * <pre>
       * The padding of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
       */
      @java.lang.Override
      public boolean hasPadding() {
        return instance.hasPadding();
      }
      /**
       * <pre>
       * The padding of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Padding getPadding() {
        return instance.getPadding();
      }
      /**
       * <pre>
       * The padding of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
       */
      public Builder setPadding(androidx.wear.protolayout.proto.ModifiersProto.Padding value) {
        copyOnWrite();
        instance.setPadding(value);
        return this;
        }
      /**
       * <pre>
       * The padding of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
       */
      public Builder setPadding(
          androidx.wear.protolayout.proto.ModifiersProto.Padding.Builder builderForValue) {
        copyOnWrite();
        instance.setPadding(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The padding of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
       */
      public Builder mergePadding(androidx.wear.protolayout.proto.ModifiersProto.Padding value) {
        copyOnWrite();
        instance.mergePadding(value);
        return this;
      }
      /**
       * <pre>
       * The padding of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Padding padding = 3;</code>
       */
      public Builder clearPadding() {  copyOnWrite();
        instance.clearPadding();
        return this;
      }

      /**
       * <pre>
       * The border of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
       */
      @java.lang.Override
      public boolean hasBorder() {
        return instance.hasBorder();
      }
      /**
       * <pre>
       * The border of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Border getBorder() {
        return instance.getBorder();
      }
      /**
       * <pre>
       * The border of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
       */
      public Builder setBorder(androidx.wear.protolayout.proto.ModifiersProto.Border value) {
        copyOnWrite();
        instance.setBorder(value);
        return this;
        }
      /**
       * <pre>
       * The border of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
       */
      public Builder setBorder(
          androidx.wear.protolayout.proto.ModifiersProto.Border.Builder builderForValue) {
        copyOnWrite();
        instance.setBorder(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The border of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
       */
      public Builder mergeBorder(androidx.wear.protolayout.proto.ModifiersProto.Border value) {
        copyOnWrite();
        instance.mergeBorder(value);
        return this;
      }
      /**
       * <pre>
       * The border of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Border border = 4;</code>
       */
      public Builder clearBorder() {  copyOnWrite();
        instance.clearBorder();
        return this;
      }

      /**
       * <pre>
       * The background (with optional corner radius) of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
       */
      @java.lang.Override
      public boolean hasBackground() {
        return instance.hasBackground();
      }
      /**
       * <pre>
       * The background (with optional corner radius) of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Background getBackground() {
        return instance.getBackground();
      }
      /**
       * <pre>
       * The background (with optional corner radius) of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
       */
      public Builder setBackground(androidx.wear.protolayout.proto.ModifiersProto.Background value) {
        copyOnWrite();
        instance.setBackground(value);
        return this;
        }
      /**
       * <pre>
       * The background (with optional corner radius) of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
       */
      public Builder setBackground(
          androidx.wear.protolayout.proto.ModifiersProto.Background.Builder builderForValue) {
        copyOnWrite();
        instance.setBackground(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The background (with optional corner radius) of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
       */
      public Builder mergeBackground(androidx.wear.protolayout.proto.ModifiersProto.Background value) {
        copyOnWrite();
        instance.mergeBackground(value);
        return this;
      }
      /**
       * <pre>
       * The background (with optional corner radius) of the modified element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Background background = 5;</code>
       */
      public Builder clearBackground() {  copyOnWrite();
        instance.clearBackground();
        return this;
      }

      /**
       * <pre>
       * Metadata about an element. For use by libraries building higher-level
       * components only. This can be used to track component metadata
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
       */
      @java.lang.Override
      public boolean hasMetadata() {
        return instance.hasMetadata();
      }
      /**
       * <pre>
       * Metadata about an element. For use by libraries building higher-level
       * components only. This can be used to track component metadata
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata getMetadata() {
        return instance.getMetadata();
      }
      /**
       * <pre>
       * Metadata about an element. For use by libraries building higher-level
       * components only. This can be used to track component metadata
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
       */
      public Builder setMetadata(androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata value) {
        copyOnWrite();
        instance.setMetadata(value);
        return this;
        }
      /**
       * <pre>
       * Metadata about an element. For use by libraries building higher-level
       * components only. This can be used to track component metadata
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
       */
      public Builder setMetadata(
          androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata.Builder builderForValue) {
        copyOnWrite();
        instance.setMetadata(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Metadata about an element. For use by libraries building higher-level
       * components only. This can be used to track component metadata
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
       */
      public Builder mergeMetadata(androidx.wear.protolayout.proto.ModifiersProto.ElementMetadata value) {
        copyOnWrite();
        instance.mergeMetadata(value);
        return this;
      }
      /**
       * <pre>
       * Metadata about an element. For use by libraries building higher-level
       * components only. This can be used to track component metadata
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ElementMetadata metadata = 6;</code>
       */
      public Builder clearMetadata() {  copyOnWrite();
        instance.clearMetadata();
        return this;
      }

      /**
       * <pre>
       * The content transition of an element. Any update to the element or its
       * children will trigger this animation for this element and everything
       * underneath it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
       */
      @java.lang.Override
      public boolean hasContentUpdateAnimation() {
        return instance.hasContentUpdateAnimation();
      }
      /**
       * <pre>
       * The content transition of an element. Any update to the element or its
       * children will trigger this animation for this element and everything
       * underneath it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility getContentUpdateAnimation() {
        return instance.getContentUpdateAnimation();
      }
      /**
       * <pre>
       * The content transition of an element. Any update to the element or its
       * children will trigger this animation for this element and everything
       * underneath it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
       */
      public Builder setContentUpdateAnimation(androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility value) {
        copyOnWrite();
        instance.setContentUpdateAnimation(value);
        return this;
        }
      /**
       * <pre>
       * The content transition of an element. Any update to the element or its
       * children will trigger this animation for this element and everything
       * underneath it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
       */
      public Builder setContentUpdateAnimation(
          androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility.Builder builderForValue) {
        copyOnWrite();
        instance.setContentUpdateAnimation(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The content transition of an element. Any update to the element or its
       * children will trigger this animation for this element and everything
       * underneath it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
       */
      public Builder mergeContentUpdateAnimation(androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility value) {
        copyOnWrite();
        instance.mergeContentUpdateAnimation(value);
        return this;
      }
      /**
       * <pre>
       * The content transition of an element. Any update to the element or its
       * children will trigger this animation for this element and everything
       * underneath it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AnimatedVisibility content_update_animation = 7;</code>
       */
      public Builder clearContentUpdateAnimation() {  copyOnWrite();
        instance.clearContentUpdateAnimation();
        return this;
      }

      /**
       * <pre>
       * Whether the attached element is hidden, or visible. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       *
       * Defaults to false (i.e. not hidden).
       * This field is deprecated and is only kept for backward compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
       */
      @java.lang.Override
      public boolean hasHidden() {
        return instance.hasHidden();
      }
      /**
       * <pre>
       * Whether the attached element is hidden, or visible. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       *
       * Defaults to false (i.e. not hidden).
       * This field is deprecated and is only kept for backward compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.BoolProp getHidden() {
        return instance.getHidden();
      }
      /**
       * <pre>
       * Whether the attached element is hidden, or visible. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       *
       * Defaults to false (i.e. not hidden).
       * This field is deprecated and is only kept for backward compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
       */
      public Builder setHidden(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.setHidden(value);
        return this;
        }
      /**
       * <pre>
       * Whether the attached element is hidden, or visible. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       *
       * Defaults to false (i.e. not hidden).
       * This field is deprecated and is only kept for backward compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
       */
      public Builder setHidden(
          androidx.wear.protolayout.proto.TypesProto.BoolProp.Builder builderForValue) {
        copyOnWrite();
        instance.setHidden(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Whether the attached element is hidden, or visible. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       *
       * Defaults to false (i.e. not hidden).
       * This field is deprecated and is only kept for backward compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
       */
      public Builder mergeHidden(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.mergeHidden(value);
        return this;
      }
      /**
       * <pre>
       * Whether the attached element is hidden, or visible. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       *
       * Defaults to false (i.e. not hidden).
       * This field is deprecated and is only kept for backward compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp hidden = 8;</code>
       */
      public Builder clearHidden() {  copyOnWrite();
        instance.clearHidden();
        return this;
      }

      /**
       * <pre>
       * The optional identifier for the layout element.
       * </pre>
       *
       * <code>string id = 9;</code>
       * @return The id.
       */
      @java.lang.Override
      public java.lang.String getId() {
        return instance.getId();
      }
      /**
       * <pre>
       * The optional identifier for the layout element.
       * </pre>
       *
       * <code>string id = 9;</code>
       * @return The bytes for id.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getIdBytes() {
        return instance.getIdBytes();
      }
      /**
       * <pre>
       * The optional identifier for the layout element.
       * </pre>
       *
       * <code>string id = 9;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <pre>
       * The optional identifier for the layout element.
       * </pre>
       *
       * <code>string id = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }
      /**
       * <pre>
       * The optional identifier for the layout element.
       * </pre>
       *
       * <code>string id = 9;</code>
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setIdBytes(value);
        return this;
      }

      /**
       * <pre>
       * Whether the attached element is visible, or hidden. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents. Defaults to
       * visible.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
       */
      @java.lang.Override
      public boolean hasVisible() {
        return instance.hasVisible();
      }
      /**
       * <pre>
       * Whether the attached element is visible, or hidden. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents. Defaults to
       * visible.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.BoolProp getVisible() {
        return instance.getVisible();
      }
      /**
       * <pre>
       * Whether the attached element is visible, or hidden. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents. Defaults to
       * visible.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
       */
      public Builder setVisible(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.setVisible(value);
        return this;
        }
      /**
       * <pre>
       * Whether the attached element is visible, or hidden. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents. Defaults to
       * visible.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
       */
      public Builder setVisible(
          androidx.wear.protolayout.proto.TypesProto.BoolProp.Builder builderForValue) {
        copyOnWrite();
        instance.setVisible(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Whether the attached element is visible, or hidden. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents. Defaults to
       * visible.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
       */
      public Builder mergeVisible(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.mergeVisible(value);
        return this;
      }
      /**
       * <pre>
       * Whether the attached element is visible, or hidden. If the element is
       * hidden, then it will still consume space in the layout, but will not render
       * any contents, nor will any children render any contents. Defaults to
       * visible.
       *
       * Note that a hidden element also cannot be clickable (i.e. a Clickable
       * modifier would be ignored).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp visible = 10;</code>
       */
      public Builder clearVisible() {  copyOnWrite();
        instance.clearVisible();
        return this;
      }

      /**
       * <pre>
       * The transformation applied to the element post-layout
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
       */
      @java.lang.Override
      public boolean hasTransformation() {
        return instance.hasTransformation();
      }
      /**
       * <pre>
       * The transformation applied to the element post-layout
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Transformation getTransformation() {
        return instance.getTransformation();
      }
      /**
       * <pre>
       * The transformation applied to the element post-layout
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
       */
      public Builder setTransformation(androidx.wear.protolayout.proto.ModifiersProto.Transformation value) {
        copyOnWrite();
        instance.setTransformation(value);
        return this;
        }
      /**
       * <pre>
       * The transformation applied to the element post-layout
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
       */
      public Builder setTransformation(
          androidx.wear.protolayout.proto.ModifiersProto.Transformation.Builder builderForValue) {
        copyOnWrite();
        instance.setTransformation(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The transformation applied to the element post-layout
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
       */
      public Builder mergeTransformation(androidx.wear.protolayout.proto.ModifiersProto.Transformation value) {
        copyOnWrite();
        instance.mergeTransformation(value);
        return this;
      }
      /**
       * <pre>
       * The transformation applied to the element post-layout
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Transformation transformation = 11;</code>
       */
      public Builder clearTransformation() {  copyOnWrite();
        instance.clearTransformation();
        return this;
      }

      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
       */
      @java.lang.Override
      public boolean hasOpacity() {
        return instance.hasOpacity();
      }
      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.FloatProp getOpacity() {
        return instance.getOpacity();
      }
      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
       */
      public Builder setOpacity(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.setOpacity(value);
        return this;
        }
      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
       */
      public Builder setOpacity(
          androidx.wear.protolayout.proto.TypesProto.FloatProp.Builder builderForValue) {
        copyOnWrite();
        instance.setOpacity(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
       */
      public Builder mergeOpacity(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.mergeOpacity(value);
        return this;
      }
      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 12;</code>
       */
      public Builder clearOpacity() {  copyOnWrite();
        instance.clearOpacity();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Modifiers)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.Modifiers();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "clickable_",
              "semantics_",
              "padding_",
              "border_",
              "background_",
              "metadata_",
              "contentUpdateAnimation_",
              "hidden_",
              "id_",
              "visible_",
              "transformation_",
              "opacity_",
            };
            java.lang.String info =
                "\u0000\f\u0000\u0000\u0001\f\f\u0000\u0000\u0000\u0001\t\u0002\t\u0003\t\u0004\t" +
                "\u0005\t\u0006\t\u0007\t\b\t\t\u0208\n\t\u000b\t\f\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.Modifiers> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.Modifiers.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.Modifiers>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.Modifiers)
    private static final androidx.wear.protolayout.proto.ModifiersProto.Modifiers DEFAULT_INSTANCE;
    static {
      Modifiers defaultInstance = new Modifiers();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Modifiers.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Modifiers getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Modifiers> PARSER;

    public static com.google.protobuf.Parser<Modifiers> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface AnimatedVisibilityOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.AnimatedVisibility)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The content transition that is triggered when element enters the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
     * @return Whether the enterTransition field is set.
     */
    boolean hasEnterTransition();
    /**
     * <pre>
     * The content transition that is triggered when element enters the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
     * @return The enterTransition.
     */
    androidx.wear.protolayout.proto.ModifiersProto.EnterTransition getEnterTransition();

    /**
     * <pre>
     * The content transition that is triggered when element exits the layout.
     * Note that indefinite exit animations are ignored.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
     * @return Whether the exitTransition field is set.
     */
    boolean hasExitTransition();
    /**
     * <pre>
     * The content transition that is triggered when element exits the layout.
     * Note that indefinite exit animations are ignored.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
     * @return The exitTransition.
     */
    androidx.wear.protolayout.proto.ModifiersProto.ExitTransition getExitTransition();
  }
  /**
   * <pre>
   * The content transition of an element. Any update to the element or its
   * children will trigger this animation for this element and everything
   * underneath it.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.AnimatedVisibility}
   */
  public  static final class AnimatedVisibility extends
      com.google.protobuf.GeneratedMessageLite<
          AnimatedVisibility, AnimatedVisibility.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.AnimatedVisibility)
      AnimatedVisibilityOrBuilder {
    private AnimatedVisibility() {
    }
    public static final int ENTER_TRANSITION_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.ModifiersProto.EnterTransition enterTransition_;
    /**
     * <pre>
     * The content transition that is triggered when element enters the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
     */
    @java.lang.Override
    public boolean hasEnterTransition() {
      return enterTransition_ != null;
    }
    /**
     * <pre>
     * The content transition that is triggered when element enters the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.EnterTransition getEnterTransition() {
      return enterTransition_ == null ? androidx.wear.protolayout.proto.ModifiersProto.EnterTransition.getDefaultInstance() : enterTransition_;
    }
    /**
     * <pre>
     * The content transition that is triggered when element enters the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
     */
    private void setEnterTransition(androidx.wear.protolayout.proto.ModifiersProto.EnterTransition value) {
      value.getClass();
  enterTransition_ = value;

      }
    /**
     * <pre>
     * The content transition that is triggered when element enters the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeEnterTransition(androidx.wear.protolayout.proto.ModifiersProto.EnterTransition value) {
      value.getClass();
  if (enterTransition_ != null &&
          enterTransition_ != androidx.wear.protolayout.proto.ModifiersProto.EnterTransition.getDefaultInstance()) {
        enterTransition_ =
          androidx.wear.protolayout.proto.ModifiersProto.EnterTransition.newBuilder(enterTransition_).mergeFrom(value).buildPartial();
      } else {
        enterTransition_ = value;
      }

    }
    /**
     * <pre>
     * The content transition that is triggered when element enters the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
     */
    private void clearEnterTransition() {  enterTransition_ = null;

    }

    public static final int EXIT_TRANSITION_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ModifiersProto.ExitTransition exitTransition_;
    /**
     * <pre>
     * The content transition that is triggered when element exits the layout.
     * Note that indefinite exit animations are ignored.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
     */
    @java.lang.Override
    public boolean hasExitTransition() {
      return exitTransition_ != null;
    }
    /**
     * <pre>
     * The content transition that is triggered when element exits the layout.
     * Note that indefinite exit animations are ignored.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.ExitTransition getExitTransition() {
      return exitTransition_ == null ? androidx.wear.protolayout.proto.ModifiersProto.ExitTransition.getDefaultInstance() : exitTransition_;
    }
    /**
     * <pre>
     * The content transition that is triggered when element exits the layout.
     * Note that indefinite exit animations are ignored.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
     */
    private void setExitTransition(androidx.wear.protolayout.proto.ModifiersProto.ExitTransition value) {
      value.getClass();
  exitTransition_ = value;

      }
    /**
     * <pre>
     * The content transition that is triggered when element exits the layout.
     * Note that indefinite exit animations are ignored.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeExitTransition(androidx.wear.protolayout.proto.ModifiersProto.ExitTransition value) {
      value.getClass();
  if (exitTransition_ != null &&
          exitTransition_ != androidx.wear.protolayout.proto.ModifiersProto.ExitTransition.getDefaultInstance()) {
        exitTransition_ =
          androidx.wear.protolayout.proto.ModifiersProto.ExitTransition.newBuilder(exitTransition_).mergeFrom(value).buildPartial();
      } else {
        exitTransition_ = value;
      }

    }
    /**
     * <pre>
     * The content transition that is triggered when element exits the layout.
     * Note that indefinite exit animations are ignored.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
     */
    private void clearExitTransition() {  exitTransition_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The content transition of an element. Any update to the element or its
     * children will trigger this animation for this element and everything
     * underneath it.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.AnimatedVisibility}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.AnimatedVisibility)
        androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibilityOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The content transition that is triggered when element enters the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
       */
      @java.lang.Override
      public boolean hasEnterTransition() {
        return instance.hasEnterTransition();
      }
      /**
       * <pre>
       * The content transition that is triggered when element enters the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.EnterTransition getEnterTransition() {
        return instance.getEnterTransition();
      }
      /**
       * <pre>
       * The content transition that is triggered when element enters the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
       */
      public Builder setEnterTransition(androidx.wear.protolayout.proto.ModifiersProto.EnterTransition value) {
        copyOnWrite();
        instance.setEnterTransition(value);
        return this;
        }
      /**
       * <pre>
       * The content transition that is triggered when element enters the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
       */
      public Builder setEnterTransition(
          androidx.wear.protolayout.proto.ModifiersProto.EnterTransition.Builder builderForValue) {
        copyOnWrite();
        instance.setEnterTransition(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The content transition that is triggered when element enters the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
       */
      public Builder mergeEnterTransition(androidx.wear.protolayout.proto.ModifiersProto.EnterTransition value) {
        copyOnWrite();
        instance.mergeEnterTransition(value);
        return this;
      }
      /**
       * <pre>
       * The content transition that is triggered when element enters the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EnterTransition enter_transition = 1;</code>
       */
      public Builder clearEnterTransition() {  copyOnWrite();
        instance.clearEnterTransition();
        return this;
      }

      /**
       * <pre>
       * The content transition that is triggered when element exits the layout.
       * Note that indefinite exit animations are ignored.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
       */
      @java.lang.Override
      public boolean hasExitTransition() {
        return instance.hasExitTransition();
      }
      /**
       * <pre>
       * The content transition that is triggered when element exits the layout.
       * Note that indefinite exit animations are ignored.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.ExitTransition getExitTransition() {
        return instance.getExitTransition();
      }
      /**
       * <pre>
       * The content transition that is triggered when element exits the layout.
       * Note that indefinite exit animations are ignored.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
       */
      public Builder setExitTransition(androidx.wear.protolayout.proto.ModifiersProto.ExitTransition value) {
        copyOnWrite();
        instance.setExitTransition(value);
        return this;
        }
      /**
       * <pre>
       * The content transition that is triggered when element exits the layout.
       * Note that indefinite exit animations are ignored.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
       */
      public Builder setExitTransition(
          androidx.wear.protolayout.proto.ModifiersProto.ExitTransition.Builder builderForValue) {
        copyOnWrite();
        instance.setExitTransition(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The content transition that is triggered when element exits the layout.
       * Note that indefinite exit animations are ignored.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
       */
      public Builder mergeExitTransition(androidx.wear.protolayout.proto.ModifiersProto.ExitTransition value) {
        copyOnWrite();
        instance.mergeExitTransition(value);
        return this;
      }
      /**
       * <pre>
       * The content transition that is triggered when element exits the layout.
       * Note that indefinite exit animations are ignored.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ExitTransition exit_transition = 2;</code>
       */
      public Builder clearExitTransition() {  copyOnWrite();
        instance.clearExitTransition();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.AnimatedVisibility)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "enterTransition_",
              "exitTransition_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.AnimatedVisibility)
    private static final androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility DEFAULT_INSTANCE;
    static {
      AnimatedVisibility defaultInstance = new AnimatedVisibility();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AnimatedVisibility.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.AnimatedVisibility getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<AnimatedVisibility> PARSER;

    public static com.google.protobuf.Parser<AnimatedVisibility> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface EnterTransitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.EnterTransition)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The fading in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
     * @return Whether the fadeIn field is set.
     */
    boolean hasFadeIn();
    /**
     * <pre>
     * The fading in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
     * @return The fadeIn.
     */
    androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition getFadeIn();

    /**
     * <pre>
     * The sliding in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
     * @return Whether the slideIn field is set.
     */
    boolean hasSlideIn();
    /**
     * <pre>
     * The sliding in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
     * @return The slideIn.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition getSlideIn();
  }
  /**
   * <pre>
   * The content transition that is triggered when element enters the layout.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.EnterTransition}
   */
  public  static final class EnterTransition extends
      com.google.protobuf.GeneratedMessageLite<
          EnterTransition, EnterTransition.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.EnterTransition)
      EnterTransitionOrBuilder {
    private EnterTransition() {
    }
    public static final int FADE_IN_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition fadeIn_;
    /**
     * <pre>
     * The fading in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
     */
    @java.lang.Override
    public boolean hasFadeIn() {
      return fadeIn_ != null;
    }
    /**
     * <pre>
     * The fading in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition getFadeIn() {
      return fadeIn_ == null ? androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition.getDefaultInstance() : fadeIn_;
    }
    /**
     * <pre>
     * The fading in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
     */
    private void setFadeIn(androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition value) {
      value.getClass();
  fadeIn_ = value;

      }
    /**
     * <pre>
     * The fading in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFadeIn(androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition value) {
      value.getClass();
  if (fadeIn_ != null &&
          fadeIn_ != androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition.getDefaultInstance()) {
        fadeIn_ =
          androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition.newBuilder(fadeIn_).mergeFrom(value).buildPartial();
      } else {
        fadeIn_ = value;
      }

    }
    /**
     * <pre>
     * The fading in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
     */
    private void clearFadeIn() {  fadeIn_ = null;

    }

    public static final int SLIDE_IN_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition slideIn_;
    /**
     * <pre>
     * The sliding in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
     */
    @java.lang.Override
    public boolean hasSlideIn() {
      return slideIn_ != null;
    }
    /**
     * <pre>
     * The sliding in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition getSlideIn() {
      return slideIn_ == null ? androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition.getDefaultInstance() : slideIn_;
    }
    /**
     * <pre>
     * The sliding in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
     */
    private void setSlideIn(androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition value) {
      value.getClass();
  slideIn_ = value;

      }
    /**
     * <pre>
     * The sliding in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSlideIn(androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition value) {
      value.getClass();
  if (slideIn_ != null &&
          slideIn_ != androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition.getDefaultInstance()) {
        slideIn_ =
          androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition.newBuilder(slideIn_).mergeFrom(value).buildPartial();
      } else {
        slideIn_ = value;
      }

    }
    /**
     * <pre>
     * The sliding in animation for content transition of an element and its
     * children happening when entering the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
     */
    private void clearSlideIn() {  slideIn_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.EnterTransition prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The content transition that is triggered when element enters the layout.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.EnterTransition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.EnterTransition, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.EnterTransition)
        androidx.wear.protolayout.proto.ModifiersProto.EnterTransitionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.EnterTransition.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The fading in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
       */
      @java.lang.Override
      public boolean hasFadeIn() {
        return instance.hasFadeIn();
      }
      /**
       * <pre>
       * The fading in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition getFadeIn() {
        return instance.getFadeIn();
      }
      /**
       * <pre>
       * The fading in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
       */
      public Builder setFadeIn(androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition value) {
        copyOnWrite();
        instance.setFadeIn(value);
        return this;
        }
      /**
       * <pre>
       * The fading in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
       */
      public Builder setFadeIn(
          androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition.Builder builderForValue) {
        copyOnWrite();
        instance.setFadeIn(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The fading in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
       */
      public Builder mergeFadeIn(androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition value) {
        copyOnWrite();
        instance.mergeFadeIn(value);
        return this;
      }
      /**
       * <pre>
       * The fading in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeInTransition fade_in = 1;</code>
       */
      public Builder clearFadeIn() {  copyOnWrite();
        instance.clearFadeIn();
        return this;
      }

      /**
       * <pre>
       * The sliding in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
       */
      @java.lang.Override
      public boolean hasSlideIn() {
        return instance.hasSlideIn();
      }
      /**
       * <pre>
       * The sliding in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition getSlideIn() {
        return instance.getSlideIn();
      }
      /**
       * <pre>
       * The sliding in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
       */
      public Builder setSlideIn(androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition value) {
        copyOnWrite();
        instance.setSlideIn(value);
        return this;
        }
      /**
       * <pre>
       * The sliding in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
       */
      public Builder setSlideIn(
          androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition.Builder builderForValue) {
        copyOnWrite();
        instance.setSlideIn(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The sliding in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
       */
      public Builder mergeSlideIn(androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition value) {
        copyOnWrite();
        instance.mergeSlideIn(value);
        return this;
      }
      /**
       * <pre>
       * The sliding in animation for content transition of an element and its
       * children happening when entering the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideInTransition slide_in = 2;</code>
       */
      public Builder clearSlideIn() {  copyOnWrite();
        instance.clearSlideIn();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.EnterTransition)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.EnterTransition();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "fadeIn_",
              "slideIn_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.EnterTransition> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.EnterTransition.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.EnterTransition>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.EnterTransition)
    private static final androidx.wear.protolayout.proto.ModifiersProto.EnterTransition DEFAULT_INSTANCE;
    static {
      EnterTransition defaultInstance = new EnterTransition();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        EnterTransition.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.EnterTransition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<EnterTransition> PARSER;

    public static com.google.protobuf.Parser<EnterTransition> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface FadeInTransitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.FadeInTransition)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The starting alpha of the fade in transition. It should be between 0 and 1.
     * If not set, defaults to fully transparent, i.e. 0.
     * </pre>
     *
     * <code>float initial_alpha = 1;</code>
     * @return The initialAlpha.
     */
    float getInitialAlpha();

    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     * @return Whether the animationSpec field is set.
     */
    boolean hasAnimationSpec();
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     * @return The animationSpec.
     */
    androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec();
  }
  /**
   * <pre>
   * The fading animation for content transition of an element and its children,
   * from the specified starting alpha to fully visible.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.FadeInTransition}
   */
  public  static final class FadeInTransition extends
      com.google.protobuf.GeneratedMessageLite<
          FadeInTransition, FadeInTransition.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.FadeInTransition)
      FadeInTransitionOrBuilder {
    private FadeInTransition() {
    }
    public static final int INITIAL_ALPHA_FIELD_NUMBER = 1;
    private float initialAlpha_;
    /**
     * <pre>
     * The starting alpha of the fade in transition. It should be between 0 and 1.
     * If not set, defaults to fully transparent, i.e. 0.
     * </pre>
     *
     * <code>float initial_alpha = 1;</code>
     * @return The initialAlpha.
     */
    @java.lang.Override
    public float getInitialAlpha() {
      return initialAlpha_;
    }
    /**
     * <pre>
     * The starting alpha of the fade in transition. It should be between 0 and 1.
     * If not set, defaults to fully transparent, i.e. 0.
     * </pre>
     *
     * <code>float initial_alpha = 1;</code>
     * @param value The initialAlpha to set.
     */
    private void setInitialAlpha(float value) {
      
      initialAlpha_ = value;
    }
    /**
     * <pre>
     * The starting alpha of the fade in transition. It should be between 0 and 1.
     * If not set, defaults to fully transparent, i.e. 0.
     * </pre>
     *
     * <code>float initial_alpha = 1;</code>
     */
    private void clearInitialAlpha() {

      initialAlpha_ = 0F;
    }

    public static final int ANIMATION_SPEC_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec animationSpec_;
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    @java.lang.Override
    public boolean hasAnimationSpec() {
      return animationSpec_ != null;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
      return animationSpec_ == null ? androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance() : animationSpec_;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    private void setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  animationSpec_ = value;

      }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  if (animationSpec_ != null &&
          animationSpec_ != androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance()) {
        animationSpec_ =
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.newBuilder(animationSpec_).mergeFrom(value).buildPartial();
      } else {
        animationSpec_ = value;
      }

    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    private void clearAnimationSpec() {  animationSpec_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The fading animation for content transition of an element and its children,
     * from the specified starting alpha to fully visible.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.FadeInTransition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.FadeInTransition)
        androidx.wear.protolayout.proto.ModifiersProto.FadeInTransitionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The starting alpha of the fade in transition. It should be between 0 and 1.
       * If not set, defaults to fully transparent, i.e. 0.
       * </pre>
       *
       * <code>float initial_alpha = 1;</code>
       * @return The initialAlpha.
       */
      @java.lang.Override
      public float getInitialAlpha() {
        return instance.getInitialAlpha();
      }
      /**
       * <pre>
       * The starting alpha of the fade in transition. It should be between 0 and 1.
       * If not set, defaults to fully transparent, i.e. 0.
       * </pre>
       *
       * <code>float initial_alpha = 1;</code>
       * @param value The initialAlpha to set.
       * @return This builder for chaining.
       */
      public Builder setInitialAlpha(float value) {
        copyOnWrite();
        instance.setInitialAlpha(value);
        return this;
      }
      /**
       * <pre>
       * The starting alpha of the fade in transition. It should be between 0 and 1.
       * If not set, defaults to fully transparent, i.e. 0.
       * </pre>
       *
       * <code>float initial_alpha = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearInitialAlpha() {
        copyOnWrite();
        instance.clearInitialAlpha();
        return this;
      }

      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      @java.lang.Override
      public boolean hasAnimationSpec() {
        return instance.hasAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
        return instance.getAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.setAnimationSpec(value);
        return this;
        }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder setAnimationSpec(
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimationSpec(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.mergeAnimationSpec(value);
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder clearAnimationSpec() {  copyOnWrite();
        instance.clearAnimationSpec();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.FadeInTransition)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "initialAlpha_",
              "animationSpec_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0001\u0002\t" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.FadeInTransition)
    private static final androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition DEFAULT_INSTANCE;
    static {
      FadeInTransition defaultInstance = new FadeInTransition();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        FadeInTransition.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.FadeInTransition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<FadeInTransition> PARSER;

    public static com.google.protobuf.Parser<FadeInTransition> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SlideInTransitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SlideInTransition)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The slide direction used for slide animations on any element, from the
     * specified point to its destination in the layout. If not set, defaults to
     * horizontal from left to the right.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @return The enum numeric value on the wire for direction.
     */
    int getDirectionValue();
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from the
     * specified point to its destination in the layout. If not set, defaults to
     * horizontal from left to the right.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @return The direction.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SlideDirection getDirection();

    /**
     * <pre>
     * The initial offset for animation. By default the transition starts from the
     * left parent boundary for horizontal orientation and from the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
     * @return Whether the initialSlideBound field is set.
     */
    boolean hasInitialSlideBound();
    /**
     * <pre>
     * The initial offset for animation. By default the transition starts from the
     * left parent boundary for horizontal orientation and from the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
     * @return The initialSlideBound.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SlideBound getInitialSlideBound();

    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return Whether the animationSpec field is set.
     */
    boolean hasAnimationSpec();
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return The animationSpec.
     */
    androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec();
  }
  /**
   * <pre>
   * The sliding in animation for content transition of an element and its
   * children.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SlideInTransition}
   */
  public  static final class SlideInTransition extends
      com.google.protobuf.GeneratedMessageLite<
          SlideInTransition, SlideInTransition.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SlideInTransition)
      SlideInTransitionOrBuilder {
    private SlideInTransition() {
    }
    public static final int DIRECTION_FIELD_NUMBER = 1;
    private int direction_;
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from the
     * specified point to its destination in the layout. If not set, defaults to
     * horizontal from left to the right.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @return The enum numeric value on the wire for direction.
     */
    @java.lang.Override
    public int getDirectionValue() {
      return direction_;
    }
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from the
     * specified point to its destination in the layout. If not set, defaults to
     * horizontal from left to the right.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @return The direction.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SlideDirection getDirection() {
      androidx.wear.protolayout.proto.ModifiersProto.SlideDirection result = androidx.wear.protolayout.proto.ModifiersProto.SlideDirection.forNumber(direction_);
      return result == null ? androidx.wear.protolayout.proto.ModifiersProto.SlideDirection.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from the
     * specified point to its destination in the layout. If not set, defaults to
     * horizontal from left to the right.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @param value The enum numeric value on the wire for direction to set.
     */
    private void setDirectionValue(int value) {
        direction_ = value;
    }
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from the
     * specified point to its destination in the layout. If not set, defaults to
     * horizontal from left to the right.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @param value The direction to set.
     */
    private void setDirection(androidx.wear.protolayout.proto.ModifiersProto.SlideDirection value) {
      direction_ = value.getNumber();

    }
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from the
     * specified point to its destination in the layout. If not set, defaults to
     * horizontal from left to the right.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     */
    private void clearDirection() {

      direction_ = 0;
    }

    public static final int INITIAL_SLIDE_BOUND_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ModifiersProto.SlideBound initialSlideBound_;
    /**
     * <pre>
     * The initial offset for animation. By default the transition starts from the
     * left parent boundary for horizontal orientation and from the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
     */
    @java.lang.Override
    public boolean hasInitialSlideBound() {
      return initialSlideBound_ != null;
    }
    /**
     * <pre>
     * The initial offset for animation. By default the transition starts from the
     * left parent boundary for horizontal orientation and from the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SlideBound getInitialSlideBound() {
      return initialSlideBound_ == null ? androidx.wear.protolayout.proto.ModifiersProto.SlideBound.getDefaultInstance() : initialSlideBound_;
    }
    /**
     * <pre>
     * The initial offset for animation. By default the transition starts from the
     * left parent boundary for horizontal orientation and from the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
     */
    private void setInitialSlideBound(androidx.wear.protolayout.proto.ModifiersProto.SlideBound value) {
      value.getClass();
  initialSlideBound_ = value;

      }
    /**
     * <pre>
     * The initial offset for animation. By default the transition starts from the
     * left parent boundary for horizontal orientation and from the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeInitialSlideBound(androidx.wear.protolayout.proto.ModifiersProto.SlideBound value) {
      value.getClass();
  if (initialSlideBound_ != null &&
          initialSlideBound_ != androidx.wear.protolayout.proto.ModifiersProto.SlideBound.getDefaultInstance()) {
        initialSlideBound_ =
          androidx.wear.protolayout.proto.ModifiersProto.SlideBound.newBuilder(initialSlideBound_).mergeFrom(value).buildPartial();
      } else {
        initialSlideBound_ = value;
      }

    }
    /**
     * <pre>
     * The initial offset for animation. By default the transition starts from the
     * left parent boundary for horizontal orientation and from the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
     */
    private void clearInitialSlideBound() {  initialSlideBound_ = null;

    }

    public static final int ANIMATION_SPEC_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec animationSpec_;
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public boolean hasAnimationSpec() {
      return animationSpec_ != null;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
      return animationSpec_ == null ? androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance() : animationSpec_;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  animationSpec_ = value;

      }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  if (animationSpec_ != null &&
          animationSpec_ != androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance()) {
        animationSpec_ =
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.newBuilder(animationSpec_).mergeFrom(value).buildPartial();
      } else {
        animationSpec_ = value;
      }

    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void clearAnimationSpec() {  animationSpec_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The sliding in animation for content transition of an element and its
     * children.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SlideInTransition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SlideInTransition)
        androidx.wear.protolayout.proto.ModifiersProto.SlideInTransitionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The slide direction used for slide animations on any element, from the
       * specified point to its destination in the layout. If not set, defaults to
       * horizontal from left to the right.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
       * @return The enum numeric value on the wire for direction.
       */
      @java.lang.Override
      public int getDirectionValue() {
        return instance.getDirectionValue();
      }
      /**
       * <pre>
       * The slide direction used for slide animations on any element, from the
       * specified point to its destination in the layout. If not set, defaults to
       * horizontal from left to the right.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
       * @param value The direction to set.
       * @return This builder for chaining.
       */
      public Builder setDirectionValue(int value) {
        copyOnWrite();
        instance.setDirectionValue(value);
        return this;
      }
      /**
       * <pre>
       * The slide direction used for slide animations on any element, from the
       * specified point to its destination in the layout. If not set, defaults to
       * horizontal from left to the right.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
       * @return The direction.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SlideDirection getDirection() {
        return instance.getDirection();
      }
      /**
       * <pre>
       * The slide direction used for slide animations on any element, from the
       * specified point to its destination in the layout. If not set, defaults to
       * horizontal from left to the right.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
       * @param value The enum numeric value on the wire for direction to set.
       * @return This builder for chaining.
       */
      public Builder setDirection(androidx.wear.protolayout.proto.ModifiersProto.SlideDirection value) {
        copyOnWrite();
        instance.setDirection(value);
        return this;
      }
      /**
       * <pre>
       * The slide direction used for slide animations on any element, from the
       * specified point to its destination in the layout. If not set, defaults to
       * horizontal from left to the right.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDirection() {
        copyOnWrite();
        instance.clearDirection();
        return this;
      }

      /**
       * <pre>
       * The initial offset for animation. By default the transition starts from the
       * left parent boundary for horizontal orientation and from the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
       */
      @java.lang.Override
      public boolean hasInitialSlideBound() {
        return instance.hasInitialSlideBound();
      }
      /**
       * <pre>
       * The initial offset for animation. By default the transition starts from the
       * left parent boundary for horizontal orientation and from the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SlideBound getInitialSlideBound() {
        return instance.getInitialSlideBound();
      }
      /**
       * <pre>
       * The initial offset for animation. By default the transition starts from the
       * left parent boundary for horizontal orientation and from the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
       */
      public Builder setInitialSlideBound(androidx.wear.protolayout.proto.ModifiersProto.SlideBound value) {
        copyOnWrite();
        instance.setInitialSlideBound(value);
        return this;
        }
      /**
       * <pre>
       * The initial offset for animation. By default the transition starts from the
       * left parent boundary for horizontal orientation and from the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
       */
      public Builder setInitialSlideBound(
          androidx.wear.protolayout.proto.ModifiersProto.SlideBound.Builder builderForValue) {
        copyOnWrite();
        instance.setInitialSlideBound(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The initial offset for animation. By default the transition starts from the
       * left parent boundary for horizontal orientation and from the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
       */
      public Builder mergeInitialSlideBound(androidx.wear.protolayout.proto.ModifiersProto.SlideBound value) {
        copyOnWrite();
        instance.mergeInitialSlideBound(value);
        return this;
      }
      /**
       * <pre>
       * The initial offset for animation. By default the transition starts from the
       * left parent boundary for horizontal orientation and from the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound initial_slide_bound = 2;</code>
       */
      public Builder clearInitialSlideBound() {  copyOnWrite();
        instance.clearInitialSlideBound();
        return this;
      }

      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public boolean hasAnimationSpec() {
        return instance.hasAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
        return instance.getAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.setAnimationSpec(value);
        return this;
        }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimationSpec(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.mergeAnimationSpec(value);
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder clearAnimationSpec() {  copyOnWrite();
        instance.clearAnimationSpec();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SlideInTransition)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "direction_",
              "initialSlideBound_",
              "animationSpec_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\f\u0002\t\u0003" +
                "\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.SlideInTransition)
    private static final androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition DEFAULT_INSTANCE;
    static {
      SlideInTransition defaultInstance = new SlideInTransition();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SlideInTransition.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SlideInTransition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SlideInTransition> PARSER;

    public static com.google.protobuf.Parser<SlideInTransition> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ExitTransitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ExitTransition)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The fading out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
     * @return Whether the fadeOut field is set.
     */
    boolean hasFadeOut();
    /**
     * <pre>
     * The fading out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
     * @return The fadeOut.
     */
    androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition getFadeOut();

    /**
     * <pre>
     * The sliding out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
     * @return Whether the slideOut field is set.
     */
    boolean hasSlideOut();
    /**
     * <pre>
     * The sliding out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
     * @return The slideOut.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition getSlideOut();
  }
  /**
   * <pre>
   * The content transition that is triggered when element exits the layout.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ExitTransition}
   */
  public  static final class ExitTransition extends
      com.google.protobuf.GeneratedMessageLite<
          ExitTransition, ExitTransition.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ExitTransition)
      ExitTransitionOrBuilder {
    private ExitTransition() {
    }
    public static final int FADE_OUT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition fadeOut_;
    /**
     * <pre>
     * The fading out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
     */
    @java.lang.Override
    public boolean hasFadeOut() {
      return fadeOut_ != null;
    }
    /**
     * <pre>
     * The fading out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition getFadeOut() {
      return fadeOut_ == null ? androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition.getDefaultInstance() : fadeOut_;
    }
    /**
     * <pre>
     * The fading out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
     */
    private void setFadeOut(androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition value) {
      value.getClass();
  fadeOut_ = value;

      }
    /**
     * <pre>
     * The fading out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFadeOut(androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition value) {
      value.getClass();
  if (fadeOut_ != null &&
          fadeOut_ != androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition.getDefaultInstance()) {
        fadeOut_ =
          androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition.newBuilder(fadeOut_).mergeFrom(value).buildPartial();
      } else {
        fadeOut_ = value;
      }

    }
    /**
     * <pre>
     * The fading out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
     */
    private void clearFadeOut() {  fadeOut_ = null;

    }

    public static final int SLIDE_OUT_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition slideOut_;
    /**
     * <pre>
     * The sliding out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
     */
    @java.lang.Override
    public boolean hasSlideOut() {
      return slideOut_ != null;
    }
    /**
     * <pre>
     * The sliding out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition getSlideOut() {
      return slideOut_ == null ? androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition.getDefaultInstance() : slideOut_;
    }
    /**
     * <pre>
     * The sliding out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
     */
    private void setSlideOut(androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition value) {
      value.getClass();
  slideOut_ = value;

      }
    /**
     * <pre>
     * The sliding out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSlideOut(androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition value) {
      value.getClass();
  if (slideOut_ != null &&
          slideOut_ != androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition.getDefaultInstance()) {
        slideOut_ =
          androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition.newBuilder(slideOut_).mergeFrom(value).buildPartial();
      } else {
        slideOut_ = value;
      }

    }
    /**
     * <pre>
     * The sliding out animation for content transition of an element and its
     * children happening when exiting the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
     */
    private void clearSlideOut() {  slideOut_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.ExitTransition prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The content transition that is triggered when element exits the layout.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ExitTransition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.ExitTransition, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ExitTransition)
        androidx.wear.protolayout.proto.ModifiersProto.ExitTransitionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.ExitTransition.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The fading out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
       */
      @java.lang.Override
      public boolean hasFadeOut() {
        return instance.hasFadeOut();
      }
      /**
       * <pre>
       * The fading out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition getFadeOut() {
        return instance.getFadeOut();
      }
      /**
       * <pre>
       * The fading out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
       */
      public Builder setFadeOut(androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition value) {
        copyOnWrite();
        instance.setFadeOut(value);
        return this;
        }
      /**
       * <pre>
       * The fading out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
       */
      public Builder setFadeOut(
          androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition.Builder builderForValue) {
        copyOnWrite();
        instance.setFadeOut(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The fading out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
       */
      public Builder mergeFadeOut(androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition value) {
        copyOnWrite();
        instance.mergeFadeOut(value);
        return this;
      }
      /**
       * <pre>
       * The fading out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FadeOutTransition fade_out = 1;</code>
       */
      public Builder clearFadeOut() {  copyOnWrite();
        instance.clearFadeOut();
        return this;
      }

      /**
       * <pre>
       * The sliding out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
       */
      @java.lang.Override
      public boolean hasSlideOut() {
        return instance.hasSlideOut();
      }
      /**
       * <pre>
       * The sliding out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition getSlideOut() {
        return instance.getSlideOut();
      }
      /**
       * <pre>
       * The sliding out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
       */
      public Builder setSlideOut(androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition value) {
        copyOnWrite();
        instance.setSlideOut(value);
        return this;
        }
      /**
       * <pre>
       * The sliding out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
       */
      public Builder setSlideOut(
          androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition.Builder builderForValue) {
        copyOnWrite();
        instance.setSlideOut(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The sliding out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
       */
      public Builder mergeSlideOut(androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition value) {
        copyOnWrite();
        instance.mergeSlideOut(value);
        return this;
      }
      /**
       * <pre>
       * The sliding out animation for content transition of an element and its
       * children happening when exiting the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideOutTransition slide_out = 2;</code>
       */
      public Builder clearSlideOut() {  copyOnWrite();
        instance.clearSlideOut();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ExitTransition)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.ExitTransition();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "fadeOut_",
              "slideOut_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.ExitTransition> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.ExitTransition.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.ExitTransition>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ExitTransition)
    private static final androidx.wear.protolayout.proto.ModifiersProto.ExitTransition DEFAULT_INSTANCE;
    static {
      ExitTransition defaultInstance = new ExitTransition();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ExitTransition.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.ExitTransition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ExitTransition> PARSER;

    public static com.google.protobuf.Parser<ExitTransition> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface FadeOutTransitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.FadeOutTransition)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The target alpha of the fade out transition. It should be between 0 and 1.
     * If not set, defaults to fully invisible, i.e. 0.
     * </pre>
     *
     * <code>float target_alpha = 1;</code>
     * @return The targetAlpha.
     */
    float getTargetAlpha();

    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     * @return Whether the animationSpec field is set.
     */
    boolean hasAnimationSpec();
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     * @return The animationSpec.
     */
    androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec();
  }
  /**
   * <pre>
   * The fading animation for content transition of an element and its children,
   * from fully visible to the specified target alpha.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.FadeOutTransition}
   */
  public  static final class FadeOutTransition extends
      com.google.protobuf.GeneratedMessageLite<
          FadeOutTransition, FadeOutTransition.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.FadeOutTransition)
      FadeOutTransitionOrBuilder {
    private FadeOutTransition() {
    }
    public static final int TARGET_ALPHA_FIELD_NUMBER = 1;
    private float targetAlpha_;
    /**
     * <pre>
     * The target alpha of the fade out transition. It should be between 0 and 1.
     * If not set, defaults to fully invisible, i.e. 0.
     * </pre>
     *
     * <code>float target_alpha = 1;</code>
     * @return The targetAlpha.
     */
    @java.lang.Override
    public float getTargetAlpha() {
      return targetAlpha_;
    }
    /**
     * <pre>
     * The target alpha of the fade out transition. It should be between 0 and 1.
     * If not set, defaults to fully invisible, i.e. 0.
     * </pre>
     *
     * <code>float target_alpha = 1;</code>
     * @param value The targetAlpha to set.
     */
    private void setTargetAlpha(float value) {
      
      targetAlpha_ = value;
    }
    /**
     * <pre>
     * The target alpha of the fade out transition. It should be between 0 and 1.
     * If not set, defaults to fully invisible, i.e. 0.
     * </pre>
     *
     * <code>float target_alpha = 1;</code>
     */
    private void clearTargetAlpha() {

      targetAlpha_ = 0F;
    }

    public static final int ANIMATION_SPEC_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec animationSpec_;
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    @java.lang.Override
    public boolean hasAnimationSpec() {
      return animationSpec_ != null;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
      return animationSpec_ == null ? androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance() : animationSpec_;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    private void setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  animationSpec_ = value;

      }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  if (animationSpec_ != null &&
          animationSpec_ != androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance()) {
        animationSpec_ =
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.newBuilder(animationSpec_).mergeFrom(value).buildPartial();
      } else {
        animationSpec_ = value;
      }

    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
     */
    private void clearAnimationSpec() {  animationSpec_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The fading animation for content transition of an element and its children,
     * from fully visible to the specified target alpha.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.FadeOutTransition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.FadeOutTransition)
        androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransitionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The target alpha of the fade out transition. It should be between 0 and 1.
       * If not set, defaults to fully invisible, i.e. 0.
       * </pre>
       *
       * <code>float target_alpha = 1;</code>
       * @return The targetAlpha.
       */
      @java.lang.Override
      public float getTargetAlpha() {
        return instance.getTargetAlpha();
      }
      /**
       * <pre>
       * The target alpha of the fade out transition. It should be between 0 and 1.
       * If not set, defaults to fully invisible, i.e. 0.
       * </pre>
       *
       * <code>float target_alpha = 1;</code>
       * @param value The targetAlpha to set.
       * @return This builder for chaining.
       */
      public Builder setTargetAlpha(float value) {
        copyOnWrite();
        instance.setTargetAlpha(value);
        return this;
      }
      /**
       * <pre>
       * The target alpha of the fade out transition. It should be between 0 and 1.
       * If not set, defaults to fully invisible, i.e. 0.
       * </pre>
       *
       * <code>float target_alpha = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetAlpha() {
        copyOnWrite();
        instance.clearTargetAlpha();
        return this;
      }

      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      @java.lang.Override
      public boolean hasAnimationSpec() {
        return instance.hasAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
        return instance.getAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.setAnimationSpec(value);
        return this;
        }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder setAnimationSpec(
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimationSpec(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.mergeAnimationSpec(value);
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 2;</code>
       */
      public Builder clearAnimationSpec() {  copyOnWrite();
        instance.clearAnimationSpec();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.FadeOutTransition)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "targetAlpha_",
              "animationSpec_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0001\u0002\t" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.FadeOutTransition)
    private static final androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition DEFAULT_INSTANCE;
    static {
      FadeOutTransition defaultInstance = new FadeOutTransition();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        FadeOutTransition.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.FadeOutTransition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<FadeOutTransition> PARSER;

    public static com.google.protobuf.Parser<FadeOutTransition> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SlideOutTransitionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SlideOutTransition)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The slide direction used for slide animations on any element, from its
     * destination in the layout to the specified point. If not set, defaults to
     * horizontal from right to the left.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @return The enum numeric value on the wire for direction.
     */
    int getDirectionValue();
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from its
     * destination in the layout to the specified point. If not set, defaults to
     * horizontal from right to the left.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @return The direction.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SlideDirection getDirection();

    /**
     * <pre>
     * The target offset for animation. By default the transition will end at the
     * left parent boundary for horizontal orientation and at the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
     * @return Whether the targetSlideBound field is set.
     */
    boolean hasTargetSlideBound();
    /**
     * <pre>
     * The target offset for animation. By default the transition will end at the
     * left parent boundary for horizontal orientation and at the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
     * @return The targetSlideBound.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SlideBound getTargetSlideBound();

    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return Whether the animationSpec field is set.
     */
    boolean hasAnimationSpec();
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     * @return The animationSpec.
     */
    androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec();
  }
  /**
   * <pre>
   * The sliding out animation for content transition of an element and its
   * children.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SlideOutTransition}
   */
  public  static final class SlideOutTransition extends
      com.google.protobuf.GeneratedMessageLite<
          SlideOutTransition, SlideOutTransition.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SlideOutTransition)
      SlideOutTransitionOrBuilder {
    private SlideOutTransition() {
    }
    public static final int DIRECTION_FIELD_NUMBER = 1;
    private int direction_;
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from its
     * destination in the layout to the specified point. If not set, defaults to
     * horizontal from right to the left.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @return The enum numeric value on the wire for direction.
     */
    @java.lang.Override
    public int getDirectionValue() {
      return direction_;
    }
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from its
     * destination in the layout to the specified point. If not set, defaults to
     * horizontal from right to the left.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @return The direction.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SlideDirection getDirection() {
      androidx.wear.protolayout.proto.ModifiersProto.SlideDirection result = androidx.wear.protolayout.proto.ModifiersProto.SlideDirection.forNumber(direction_);
      return result == null ? androidx.wear.protolayout.proto.ModifiersProto.SlideDirection.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from its
     * destination in the layout to the specified point. If not set, defaults to
     * horizontal from right to the left.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @param value The enum numeric value on the wire for direction to set.
     */
    private void setDirectionValue(int value) {
        direction_ = value;
    }
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from its
     * destination in the layout to the specified point. If not set, defaults to
     * horizontal from right to the left.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     * @param value The direction to set.
     */
    private void setDirection(androidx.wear.protolayout.proto.ModifiersProto.SlideDirection value) {
      direction_ = value.getNumber();

    }
    /**
     * <pre>
     * The slide direction used for slide animations on any element, from its
     * destination in the layout to the specified point. If not set, defaults to
     * horizontal from right to the left.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
     */
    private void clearDirection() {

      direction_ = 0;
    }

    public static final int TARGET_SLIDE_BOUND_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ModifiersProto.SlideBound targetSlideBound_;
    /**
     * <pre>
     * The target offset for animation. By default the transition will end at the
     * left parent boundary for horizontal orientation and at the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
     */
    @java.lang.Override
    public boolean hasTargetSlideBound() {
      return targetSlideBound_ != null;
    }
    /**
     * <pre>
     * The target offset for animation. By default the transition will end at the
     * left parent boundary for horizontal orientation and at the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SlideBound getTargetSlideBound() {
      return targetSlideBound_ == null ? androidx.wear.protolayout.proto.ModifiersProto.SlideBound.getDefaultInstance() : targetSlideBound_;
    }
    /**
     * <pre>
     * The target offset for animation. By default the transition will end at the
     * left parent boundary for horizontal orientation and at the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
     */
    private void setTargetSlideBound(androidx.wear.protolayout.proto.ModifiersProto.SlideBound value) {
      value.getClass();
  targetSlideBound_ = value;

      }
    /**
     * <pre>
     * The target offset for animation. By default the transition will end at the
     * left parent boundary for horizontal orientation and at the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeTargetSlideBound(androidx.wear.protolayout.proto.ModifiersProto.SlideBound value) {
      value.getClass();
  if (targetSlideBound_ != null &&
          targetSlideBound_ != androidx.wear.protolayout.proto.ModifiersProto.SlideBound.getDefaultInstance()) {
        targetSlideBound_ =
          androidx.wear.protolayout.proto.ModifiersProto.SlideBound.newBuilder(targetSlideBound_).mergeFrom(value).buildPartial();
      } else {
        targetSlideBound_ = value;
      }

    }
    /**
     * <pre>
     * The target offset for animation. By default the transition will end at the
     * left parent boundary for horizontal orientation and at the top for
     * vertical orientation. Note that sliding from the screen boundaries can only
     * be achieved if all parent's sizes are big enough to accommodate it.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
     */
    private void clearTargetSlideBound() {  targetSlideBound_ = null;

    }

    public static final int ANIMATION_SPEC_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec animationSpec_;
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public boolean hasAnimationSpec() {
      return animationSpec_ != null;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
      return animationSpec_ == null ? androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance() : animationSpec_;
    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  animationSpec_ = value;

      }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
      value.getClass();
  if (animationSpec_ != null &&
          animationSpec_ != androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.getDefaultInstance()) {
        animationSpec_ =
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.newBuilder(animationSpec_).mergeFrom(value).buildPartial();
      } else {
        animationSpec_ = value;
      }

    }
    /**
     * <pre>
     * The animation parameters for duration, delay, etc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
     */
    private void clearAnimationSpec() {  animationSpec_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The sliding out animation for content transition of an element and its
     * children.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SlideOutTransition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SlideOutTransition)
        androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransitionOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The slide direction used for slide animations on any element, from its
       * destination in the layout to the specified point. If not set, defaults to
       * horizontal from right to the left.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
       * @return The enum numeric value on the wire for direction.
       */
      @java.lang.Override
      public int getDirectionValue() {
        return instance.getDirectionValue();
      }
      /**
       * <pre>
       * The slide direction used for slide animations on any element, from its
       * destination in the layout to the specified point. If not set, defaults to
       * horizontal from right to the left.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
       * @param value The direction to set.
       * @return This builder for chaining.
       */
      public Builder setDirectionValue(int value) {
        copyOnWrite();
        instance.setDirectionValue(value);
        return this;
      }
      /**
       * <pre>
       * The slide direction used for slide animations on any element, from its
       * destination in the layout to the specified point. If not set, defaults to
       * horizontal from right to the left.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
       * @return The direction.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SlideDirection getDirection() {
        return instance.getDirection();
      }
      /**
       * <pre>
       * The slide direction used for slide animations on any element, from its
       * destination in the layout to the specified point. If not set, defaults to
       * horizontal from right to the left.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
       * @param value The enum numeric value on the wire for direction to set.
       * @return This builder for chaining.
       */
      public Builder setDirection(androidx.wear.protolayout.proto.ModifiersProto.SlideDirection value) {
        copyOnWrite();
        instance.setDirection(value);
        return this;
      }
      /**
       * <pre>
       * The slide direction used for slide animations on any element, from its
       * destination in the layout to the specified point. If not set, defaults to
       * horizontal from right to the left.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideDirection direction = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDirection() {
        copyOnWrite();
        instance.clearDirection();
        return this;
      }

      /**
       * <pre>
       * The target offset for animation. By default the transition will end at the
       * left parent boundary for horizontal orientation and at the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
       */
      @java.lang.Override
      public boolean hasTargetSlideBound() {
        return instance.hasTargetSlideBound();
      }
      /**
       * <pre>
       * The target offset for animation. By default the transition will end at the
       * left parent boundary for horizontal orientation and at the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SlideBound getTargetSlideBound() {
        return instance.getTargetSlideBound();
      }
      /**
       * <pre>
       * The target offset for animation. By default the transition will end at the
       * left parent boundary for horizontal orientation and at the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
       */
      public Builder setTargetSlideBound(androidx.wear.protolayout.proto.ModifiersProto.SlideBound value) {
        copyOnWrite();
        instance.setTargetSlideBound(value);
        return this;
        }
      /**
       * <pre>
       * The target offset for animation. By default the transition will end at the
       * left parent boundary for horizontal orientation and at the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
       */
      public Builder setTargetSlideBound(
          androidx.wear.protolayout.proto.ModifiersProto.SlideBound.Builder builderForValue) {
        copyOnWrite();
        instance.setTargetSlideBound(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The target offset for animation. By default the transition will end at the
       * left parent boundary for horizontal orientation and at the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
       */
      public Builder mergeTargetSlideBound(androidx.wear.protolayout.proto.ModifiersProto.SlideBound value) {
        copyOnWrite();
        instance.mergeTargetSlideBound(value);
        return this;
      }
      /**
       * <pre>
       * The target offset for animation. By default the transition will end at the
       * left parent boundary for horizontal orientation and at the top for
       * vertical orientation. Note that sliding from the screen boundaries can only
       * be achieved if all parent's sizes are big enough to accommodate it.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideBound target_slide_bound = 2;</code>
       */
      public Builder clearTargetSlideBound() {  copyOnWrite();
        instance.clearTargetSlideBound();
        return this;
      }

      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public boolean hasAnimationSpec() {
        return instance.hasAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec getAnimationSpec() {
        return instance.getAnimationSpec();
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.setAnimationSpec(value);
        return this;
        }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder setAnimationSpec(
          androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec.Builder builderForValue) {
        copyOnWrite();
        instance.setAnimationSpec(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder mergeAnimationSpec(androidx.wear.protolayout.expression.proto.AnimationParameterProto.AnimationSpec value) {
        copyOnWrite();
        instance.mergeAnimationSpec(value);
        return this;
      }
      /**
       * <pre>
       * The animation parameters for duration, delay, etc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.expression.proto.AnimationSpec animation_spec = 3;</code>
       */
      public Builder clearAnimationSpec() {  copyOnWrite();
        instance.clearAnimationSpec();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SlideOutTransition)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "direction_",
              "targetSlideBound_",
              "animationSpec_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\f\u0002\t\u0003" +
                "\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.SlideOutTransition)
    private static final androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition DEFAULT_INSTANCE;
    static {
      SlideOutTransition defaultInstance = new SlideOutTransition();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SlideOutTransition.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SlideOutTransition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SlideOutTransition> PARSER;

    public static com.google.protobuf.Parser<SlideOutTransition> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SlideBoundOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SlideBound)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
     * @return Whether the parentBound field is set.
     */
    boolean hasParentBound();
    /**
     * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
     * @return The parentBound.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound getParentBound();

    /**
     * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
     * @return Whether the linearBound field is set.
     */
    boolean hasLinearBound();
    /**
     * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
     * @return The linearBound.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound getLinearBound();

    public androidx.wear.protolayout.proto.ModifiersProto.SlideBound.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * The boundary that a Slide animation will use for start/end.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SlideBound}
   */
  public  static final class SlideBound extends
      com.google.protobuf.GeneratedMessageLite<
          SlideBound, SlideBound.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SlideBound)
      SlideBoundOrBuilder {
    private SlideBound() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      PARENT_BOUND(1),
      LINEAR_BOUND(2),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return PARENT_BOUND;
          case 2: return LINEAR_BOUND;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int PARENT_BOUND_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
     */
    @java.lang.Override
    public boolean hasParentBound() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound getParentBound() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound) inner_;
      }
      return androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
     */
    private void setParentBound(androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
     */
    private void mergeParentBound(androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound.newBuilder((androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
     */
    private void clearParentBound() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int LINEAR_BOUND_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
     */
    @java.lang.Override
    public boolean hasLinearBound() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound getLinearBound() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound) inner_;
      }
      return androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
     */
    private void setLinearBound(androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
     */
    private void mergeLinearBound(androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound.newBuilder((androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
     */
    private void clearLinearBound() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.SlideBound prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The boundary that a Slide animation will use for start/end.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SlideBound}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.SlideBound, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SlideBound)
        androidx.wear.protolayout.proto.ModifiersProto.SlideBoundOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.SlideBound.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
       */
      @java.lang.Override
      public boolean hasParentBound() {
        return instance.hasParentBound();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound getParentBound() {
        return instance.getParentBound();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
       */
      public Builder setParentBound(androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound value) {
        copyOnWrite();
        instance.setParentBound(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
       */
      public Builder setParentBound(
          androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound.Builder builderForValue) {
        copyOnWrite();
        instance.setParentBound(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
       */
      public Builder mergeParentBound(androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound value) {
        copyOnWrite();
        instance.mergeParentBound(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SlideParentBound parent_bound = 1;</code>
       */
      public Builder clearParentBound() {
        copyOnWrite();
        instance.clearParentBound();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
       */
      @java.lang.Override
      public boolean hasLinearBound() {
        return instance.hasLinearBound();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound getLinearBound() {
        return instance.getLinearBound();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
       */
      public Builder setLinearBound(androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound value) {
        copyOnWrite();
        instance.setLinearBound(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
       */
      public Builder setLinearBound(
          androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound.Builder builderForValue) {
        copyOnWrite();
        instance.setLinearBound(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
       */
      public Builder mergeLinearBound(androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound value) {
        copyOnWrite();
        instance.mergeLinearBound(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SlideLinearBound linear_bound = 2;</code>
       */
      public Builder clearLinearBound() {
        copyOnWrite();
        instance.clearLinearBound();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SlideBound)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.SlideBound();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound.class,
              androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.SlideBound> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.SlideBound.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.SlideBound>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.SlideBound)
    private static final androidx.wear.protolayout.proto.ModifiersProto.SlideBound DEFAULT_INSTANCE;
    static {
      SlideBound defaultInstance = new SlideBound();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SlideBound.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SlideBound getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SlideBound> PARSER;

    public static com.google.protobuf.Parser<SlideBound> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SlideParentBoundOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SlideParentBound)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The snap options to use when sliding using parent boundaries. Defaults to
     * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
     * @return The enum numeric value on the wire for snapTo.
     */
    int getSnapToValue();
    /**
     * <pre>
     * The snap options to use when sliding using parent boundaries. Defaults to
     * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
     * @return The snapTo.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SlideParentSnapOption getSnapTo();
  }
  /**
   * <pre>
   * The slide animation will animate from/to the parent elements boundaries.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SlideParentBound}
   */
  public  static final class SlideParentBound extends
      com.google.protobuf.GeneratedMessageLite<
          SlideParentBound, SlideParentBound.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SlideParentBound)
      SlideParentBoundOrBuilder {
    private SlideParentBound() {
    }
    public static final int SNAP_TO_FIELD_NUMBER = 1;
    private int snapTo_;
    /**
     * <pre>
     * The snap options to use when sliding using parent boundaries. Defaults to
     * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
     * @return The enum numeric value on the wire for snapTo.
     */
    @java.lang.Override
    public int getSnapToValue() {
      return snapTo_;
    }
    /**
     * <pre>
     * The snap options to use when sliding using parent boundaries. Defaults to
     * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
     * @return The snapTo.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SlideParentSnapOption getSnapTo() {
      androidx.wear.protolayout.proto.ModifiersProto.SlideParentSnapOption result = androidx.wear.protolayout.proto.ModifiersProto.SlideParentSnapOption.forNumber(snapTo_);
      return result == null ? androidx.wear.protolayout.proto.ModifiersProto.SlideParentSnapOption.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The snap options to use when sliding using parent boundaries. Defaults to
     * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
     * @param value The enum numeric value on the wire for snapTo to set.
     */
    private void setSnapToValue(int value) {
        snapTo_ = value;
    }
    /**
     * <pre>
     * The snap options to use when sliding using parent boundaries. Defaults to
     * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
     * @param value The snapTo to set.
     */
    private void setSnapTo(androidx.wear.protolayout.proto.ModifiersProto.SlideParentSnapOption value) {
      snapTo_ = value.getNumber();

    }
    /**
     * <pre>
     * The snap options to use when sliding using parent boundaries. Defaults to
     * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
     */
    private void clearSnapTo() {

      snapTo_ = 0;
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The slide animation will animate from/to the parent elements boundaries.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SlideParentBound}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SlideParentBound)
        androidx.wear.protolayout.proto.ModifiersProto.SlideParentBoundOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The snap options to use when sliding using parent boundaries. Defaults to
       * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
       * @return The enum numeric value on the wire for snapTo.
       */
      @java.lang.Override
      public int getSnapToValue() {
        return instance.getSnapToValue();
      }
      /**
       * <pre>
       * The snap options to use when sliding using parent boundaries. Defaults to
       * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
       * @param value The snapTo to set.
       * @return This builder for chaining.
       */
      public Builder setSnapToValue(int value) {
        copyOnWrite();
        instance.setSnapToValue(value);
        return this;
      }
      /**
       * <pre>
       * The snap options to use when sliding using parent boundaries. Defaults to
       * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
       * @return The snapTo.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SlideParentSnapOption getSnapTo() {
        return instance.getSnapTo();
      }
      /**
       * <pre>
       * The snap options to use when sliding using parent boundaries. Defaults to
       * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
       * @param value The enum numeric value on the wire for snapTo to set.
       * @return This builder for chaining.
       */
      public Builder setSnapTo(androidx.wear.protolayout.proto.ModifiersProto.SlideParentSnapOption value) {
        copyOnWrite();
        instance.setSnapTo(value);
        return this;
      }
      /**
       * <pre>
       * The snap options to use when sliding using parent boundaries. Defaults to
       * SLIDE_PARENT_SNAP_TO_INSIDE if not specified.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SlideParentSnapOption snap_to = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSnapTo() {
        copyOnWrite();
        instance.clearSnapTo();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SlideParentBound)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "snapTo_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.SlideParentBound)
    private static final androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound DEFAULT_INSTANCE;
    static {
      SlideParentBound defaultInstance = new SlideParentBound();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SlideParentBound.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SlideParentBound getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SlideParentBound> PARSER;

    public static com.google.protobuf.Parser<SlideParentBound> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SlideLinearBoundOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SlideLinearBound)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The absolute delta linear distance to animate from/to. A direction will be
     * defined by SlideDirection and this value should be a positive offset.
     * </pre>
     *
     * <code>float offset_dp = 1;</code>
     * @return The offsetDp.
     */
    float getOffsetDp();
  }
  /**
   * <pre>
   * The slide animation will use the explicit offset for the animation boundary.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SlideLinearBound}
   */
  public  static final class SlideLinearBound extends
      com.google.protobuf.GeneratedMessageLite<
          SlideLinearBound, SlideLinearBound.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SlideLinearBound)
      SlideLinearBoundOrBuilder {
    private SlideLinearBound() {
    }
    public static final int OFFSET_DP_FIELD_NUMBER = 1;
    private float offsetDp_;
    /**
     * <pre>
     * The absolute delta linear distance to animate from/to. A direction will be
     * defined by SlideDirection and this value should be a positive offset.
     * </pre>
     *
     * <code>float offset_dp = 1;</code>
     * @return The offsetDp.
     */
    @java.lang.Override
    public float getOffsetDp() {
      return offsetDp_;
    }
    /**
     * <pre>
     * The absolute delta linear distance to animate from/to. A direction will be
     * defined by SlideDirection and this value should be a positive offset.
     * </pre>
     *
     * <code>float offset_dp = 1;</code>
     * @param value The offsetDp to set.
     */
    private void setOffsetDp(float value) {
      
      offsetDp_ = value;
    }
    /**
     * <pre>
     * The absolute delta linear distance to animate from/to. A direction will be
     * defined by SlideDirection and this value should be a positive offset.
     * </pre>
     *
     * <code>float offset_dp = 1;</code>
     */
    private void clearOffsetDp() {

      offsetDp_ = 0F;
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The slide animation will use the explicit offset for the animation boundary.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SlideLinearBound}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SlideLinearBound)
        androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBoundOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The absolute delta linear distance to animate from/to. A direction will be
       * defined by SlideDirection and this value should be a positive offset.
       * </pre>
       *
       * <code>float offset_dp = 1;</code>
       * @return The offsetDp.
       */
      @java.lang.Override
      public float getOffsetDp() {
        return instance.getOffsetDp();
      }
      /**
       * <pre>
       * The absolute delta linear distance to animate from/to. A direction will be
       * defined by SlideDirection and this value should be a positive offset.
       * </pre>
       *
       * <code>float offset_dp = 1;</code>
       * @param value The offsetDp to set.
       * @return This builder for chaining.
       */
      public Builder setOffsetDp(float value) {
        copyOnWrite();
        instance.setOffsetDp(value);
        return this;
      }
      /**
       * <pre>
       * The absolute delta linear distance to animate from/to. A direction will be
       * defined by SlideDirection and this value should be a positive offset.
       * </pre>
       *
       * <code>float offset_dp = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOffsetDp() {
        copyOnWrite();
        instance.clearOffsetDp();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SlideLinearBound)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "offsetDp_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.SlideLinearBound)
    private static final androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound DEFAULT_INSTANCE;
    static {
      SlideLinearBound defaultInstance = new SlideLinearBound();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SlideLinearBound.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SlideLinearBound getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SlideLinearBound> PARSER;

    public static com.google.protobuf.Parser<SlideLinearBound> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ArcModifiersOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ArcModifiers)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     * @return Whether the clickable field is set.
     */
    boolean hasClickable();
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     * @return The clickable.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Clickable getClickable();

    /**
     * <pre>
     * Adds metadata for the modified element, for example, screen reader content
     * descriptions.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     * @return Whether the semantics field is set.
     */
    boolean hasSemantics();
    /**
     * <pre>
     * Adds metadata for the modified element, for example, screen reader content
     * descriptions.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     * @return The semantics.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Semantics getSemantics();

    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
     * @return Whether the opacity field is set.
     */
    boolean hasOpacity();
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
     * @return The opacity.
     */
    androidx.wear.protolayout.proto.TypesProto.FloatProp getOpacity();
  }
  /**
   * <pre>
   * Modifiers that can be used with ArcLayoutElements. These may change the way
   * they are drawn, or change their behaviour.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ArcModifiers}
   */
  public  static final class ArcModifiers extends
      com.google.protobuf.GeneratedMessageLite<
          ArcModifiers, ArcModifiers.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ArcModifiers)
      ArcModifiersOrBuilder {
    private ArcModifiers() {
    }
    public static final int CLICKABLE_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.ModifiersProto.Clickable clickable_;
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    @java.lang.Override
    public boolean hasClickable() {
      return clickable_ != null;
    }
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Clickable getClickable() {
      return clickable_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Clickable.getDefaultInstance() : clickable_;
    }
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    private void setClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
      value.getClass();
  clickable_ = value;

      }
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
      value.getClass();
  if (clickable_ != null &&
          clickable_ != androidx.wear.protolayout.proto.ModifiersProto.Clickable.getDefaultInstance()) {
        clickable_ =
          androidx.wear.protolayout.proto.ModifiersProto.Clickable.newBuilder(clickable_).mergeFrom(value).buildPartial();
      } else {
        clickable_ = value;
      }

    }
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    private void clearClickable() {  clickable_ = null;

    }

    public static final int SEMANTICS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ModifiersProto.Semantics semantics_;
    /**
     * <pre>
     * Adds metadata for the modified element, for example, screen reader content
     * descriptions.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     */
    @java.lang.Override
    public boolean hasSemantics() {
      return semantics_ != null;
    }
    /**
     * <pre>
     * Adds metadata for the modified element, for example, screen reader content
     * descriptions.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Semantics getSemantics() {
      return semantics_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Semantics.getDefaultInstance() : semantics_;
    }
    /**
     * <pre>
     * Adds metadata for the modified element, for example, screen reader content
     * descriptions.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     */
    private void setSemantics(androidx.wear.protolayout.proto.ModifiersProto.Semantics value) {
      value.getClass();
  semantics_ = value;

      }
    /**
     * <pre>
     * Adds metadata for the modified element, for example, screen reader content
     * descriptions.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSemantics(androidx.wear.protolayout.proto.ModifiersProto.Semantics value) {
      value.getClass();
  if (semantics_ != null &&
          semantics_ != androidx.wear.protolayout.proto.ModifiersProto.Semantics.getDefaultInstance()) {
        semantics_ =
          androidx.wear.protolayout.proto.ModifiersProto.Semantics.newBuilder(semantics_).mergeFrom(value).buildPartial();
      } else {
        semantics_ = value;
      }

    }
    /**
     * <pre>
     * Adds metadata for the modified element, for example, screen reader content
     * descriptions.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
     */
    private void clearSemantics() {  semantics_ = null;

    }

    public static final int OPACITY_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.TypesProto.FloatProp opacity_;
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
     */
    @java.lang.Override
    public boolean hasOpacity() {
      return opacity_ != null;
    }
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.FloatProp getOpacity() {
      return opacity_ == null ? androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance() : opacity_;
    }
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
     */
    private void setOpacity(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  opacity_ = value;

      }
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeOpacity(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
      value.getClass();
  if (opacity_ != null &&
          opacity_ != androidx.wear.protolayout.proto.TypesProto.FloatProp.getDefaultInstance()) {
        opacity_ =
          androidx.wear.protolayout.proto.TypesProto.FloatProp.newBuilder(opacity_).mergeFrom(value).buildPartial();
      } else {
        opacity_ = value;
      }

    }
    /**
     * <pre>
     * The opacity of the element with a value from 0 to 1, where 0 means
     * the element is completely transparent and 1 means the element is
     * completely opaque. Defaults to 1.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
     */
    private void clearOpacity() {  opacity_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Modifiers that can be used with ArcLayoutElements. These may change the way
     * they are drawn, or change their behaviour.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ArcModifiers}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ArcModifiers)
        androidx.wear.protolayout.proto.ModifiersProto.ArcModifiersOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      @java.lang.Override
      public boolean hasClickable() {
        return instance.hasClickable();
      }
      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Clickable getClickable() {
        return instance.getClickable();
      }
      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder setClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
        copyOnWrite();
        instance.setClickable(value);
        return this;
        }
      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder setClickable(
          androidx.wear.protolayout.proto.ModifiersProto.Clickable.Builder builderForValue) {
        copyOnWrite();
        instance.setClickable(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder mergeClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
        copyOnWrite();
        instance.mergeClickable(value);
        return this;
      }
      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder clearClickable() {  copyOnWrite();
        instance.clearClickable();
        return this;
      }

      /**
       * <pre>
       * Adds metadata for the modified element, for example, screen reader content
       * descriptions.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      @java.lang.Override
      public boolean hasSemantics() {
        return instance.hasSemantics();
      }
      /**
       * <pre>
       * Adds metadata for the modified element, for example, screen reader content
       * descriptions.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Semantics getSemantics() {
        return instance.getSemantics();
      }
      /**
       * <pre>
       * Adds metadata for the modified element, for example, screen reader content
       * descriptions.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      public Builder setSemantics(androidx.wear.protolayout.proto.ModifiersProto.Semantics value) {
        copyOnWrite();
        instance.setSemantics(value);
        return this;
        }
      /**
       * <pre>
       * Adds metadata for the modified element, for example, screen reader content
       * descriptions.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      public Builder setSemantics(
          androidx.wear.protolayout.proto.ModifiersProto.Semantics.Builder builderForValue) {
        copyOnWrite();
        instance.setSemantics(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Adds metadata for the modified element, for example, screen reader content
       * descriptions.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      public Builder mergeSemantics(androidx.wear.protolayout.proto.ModifiersProto.Semantics value) {
        copyOnWrite();
        instance.mergeSemantics(value);
        return this;
      }
      /**
       * <pre>
       * Adds metadata for the modified element, for example, screen reader content
       * descriptions.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Semantics semantics = 2;</code>
       */
      public Builder clearSemantics() {  copyOnWrite();
        instance.clearSemantics();
        return this;
      }

      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
       */
      @java.lang.Override
      public boolean hasOpacity() {
        return instance.hasOpacity();
      }
      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.FloatProp getOpacity() {
        return instance.getOpacity();
      }
      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
       */
      public Builder setOpacity(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.setOpacity(value);
        return this;
        }
      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
       */
      public Builder setOpacity(
          androidx.wear.protolayout.proto.TypesProto.FloatProp.Builder builderForValue) {
        copyOnWrite();
        instance.setOpacity(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
       */
      public Builder mergeOpacity(androidx.wear.protolayout.proto.TypesProto.FloatProp value) {
        copyOnWrite();
        instance.mergeOpacity(value);
        return this;
      }
      /**
       * <pre>
       * The opacity of the element with a value from 0 to 1, where 0 means
       * the element is completely transparent and 1 means the element is
       * completely opaque. Defaults to 1.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FloatProp opacity = 4;</code>
       */
      public Builder clearOpacity() {  copyOnWrite();
        instance.clearOpacity();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ArcModifiers)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "clickable_",
              "semantics_",
              "opacity_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0004\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0004" +
                "\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.ArcModifiers)
    private static final androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers DEFAULT_INSTANCE;
    static {
      ArcModifiers defaultInstance = new ArcModifiers();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ArcModifiers.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ArcModifiers> PARSER;

    public static com.google.protobuf.Parser<ArcModifiers> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SpanModifiersOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SpanModifiers)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     * @return Whether the clickable field is set.
     */
    boolean hasClickable();
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     * @return The clickable.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Clickable getClickable();
  }
  /**
   * <pre>
   * Modifiers that can be used with Span elements. These may change the way
   * they are drawn, or change their behaviour.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SpanModifiers}
   */
  public  static final class SpanModifiers extends
      com.google.protobuf.GeneratedMessageLite<
          SpanModifiers, SpanModifiers.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SpanModifiers)
      SpanModifiersOrBuilder {
    private SpanModifiers() {
    }
    public static final int CLICKABLE_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.ModifiersProto.Clickable clickable_;
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    @java.lang.Override
    public boolean hasClickable() {
      return clickable_ != null;
    }
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Clickable getClickable() {
      return clickable_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Clickable.getDefaultInstance() : clickable_;
    }
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    private void setClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
      value.getClass();
  clickable_ = value;

      }
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
      value.getClass();
  if (clickable_ != null &&
          clickable_ != androidx.wear.protolayout.proto.ModifiersProto.Clickable.getDefaultInstance()) {
        clickable_ =
          androidx.wear.protolayout.proto.ModifiersProto.Clickable.newBuilder(clickable_).mergeFrom(value).buildPartial();
      } else {
        clickable_ = value;
      }

    }
    /**
     * <pre>
     * Allows its wrapped element to have actions associated with it, which will
     * be executed when the element is tapped.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
     */
    private void clearClickable() {  clickable_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Modifiers that can be used with Span elements. These may change the way
     * they are drawn, or change their behaviour.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SpanModifiers}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SpanModifiers)
        androidx.wear.protolayout.proto.ModifiersProto.SpanModifiersOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      @java.lang.Override
      public boolean hasClickable() {
        return instance.hasClickable();
      }
      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Clickable getClickable() {
        return instance.getClickable();
      }
      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder setClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
        copyOnWrite();
        instance.setClickable(value);
        return this;
        }
      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder setClickable(
          androidx.wear.protolayout.proto.ModifiersProto.Clickable.Builder builderForValue) {
        copyOnWrite();
        instance.setClickable(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder mergeClickable(androidx.wear.protolayout.proto.ModifiersProto.Clickable value) {
        copyOnWrite();
        instance.mergeClickable(value);
        return this;
      }
      /**
       * <pre>
       * Allows its wrapped element to have actions associated with it, which will
       * be executed when the element is tapped.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Clickable clickable = 1;</code>
       */
      public Builder clearClickable() {  copyOnWrite();
        instance.clearClickable();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SpanModifiers)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "clickable_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.SpanModifiers)
    private static final androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers DEFAULT_INSTANCE;
    static {
      SpanModifiers defaultInstance = new SpanModifiers();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SpanModifiers.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SpanModifiers> PARSER;

    public static com.google.protobuf.Parser<SpanModifiers> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ShadowOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Shadow)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The blur radius of the shadow. It controls the size of the blur that is
     * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
     * @return Whether the blurRadius field is set.
     */
    boolean hasBlurRadius();
    /**
     * <pre>
     * The blur radius of the shadow. It controls the size of the blur that is
     * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
     * @return The blurRadius.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getBlurRadius();

    /**
     * <pre>
     * The color used in the shadow. Defaults to Black.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     * @return Whether the color field is set.
     */
    boolean hasColor();
    /**
     * <pre>
     * The color used in the shadow. Defaults to Black.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     * @return The color.
     */
    androidx.wear.protolayout.proto.ColorProto.ColorProp getColor();
  }
  /**
   * <pre>
   * The shadow definition. The shadow is drawn as a blur region around the
   * element.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Shadow}
   */
  public  static final class Shadow extends
      com.google.protobuf.GeneratedMessageLite<
          Shadow, Shadow.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Shadow)
      ShadowOrBuilder {
    private Shadow() {
    }
    public static final int BLUR_RADIUS_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp blurRadius_;
    /**
     * <pre>
     * The blur radius of the shadow. It controls the size of the blur that is
     * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
     */
    @java.lang.Override
    public boolean hasBlurRadius() {
      return blurRadius_ != null;
    }
    /**
     * <pre>
     * The blur radius of the shadow. It controls the size of the blur that is
     * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getBlurRadius() {
      return blurRadius_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : blurRadius_;
    }
    /**
     * <pre>
     * The blur radius of the shadow. It controls the size of the blur that is
     * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
     */
    private void setBlurRadius(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  blurRadius_ = value;

      }
    /**
     * <pre>
     * The blur radius of the shadow. It controls the size of the blur that is
     * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBlurRadius(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (blurRadius_ != null &&
          blurRadius_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        blurRadius_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(blurRadius_).mergeFrom(value).buildPartial();
      } else {
        blurRadius_ = value;
      }

    }
    /**
     * <pre>
     * The blur radius of the shadow. It controls the size of the blur that is
     * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
     */
    private void clearBlurRadius() {  blurRadius_ = null;

    }

    public static final int COLOR_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ColorProto.ColorProp color_;
    /**
     * <pre>
     * The color used in the shadow. Defaults to Black.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     */
    @java.lang.Override
    public boolean hasColor() {
      return color_ != null;
    }
    /**
     * <pre>
     * The color used in the shadow. Defaults to Black.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ColorProto.ColorProp getColor() {
      return color_ == null ? androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance() : color_;
    }
    /**
     * <pre>
     * The color used in the shadow. Defaults to Black.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     */
    private void setColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  color_ = value;

      }
    /**
     * <pre>
     * The color used in the shadow. Defaults to Black.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  if (color_ != null &&
          color_ != androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance()) {
        color_ =
          androidx.wear.protolayout.proto.ColorProto.ColorProp.newBuilder(color_).mergeFrom(value).buildPartial();
      } else {
        color_ = value;
      }

    }
    /**
     * <pre>
     * The color used in the shadow. Defaults to Black.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
     */
    private void clearColor() {  color_ = null;

    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.wear.protolayout.proto.ModifiersProto.Shadow prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The shadow definition. The shadow is drawn as a blur region around the
     * element.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Shadow}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.ModifiersProto.Shadow, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Shadow)
        androidx.wear.protolayout.proto.ModifiersProto.ShadowOrBuilder {
      // Construct using androidx.wear.protolayout.proto.ModifiersProto.Shadow.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The blur radius of the shadow. It controls the size of the blur that is
       * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
       */
      @java.lang.Override
      public boolean hasBlurRadius() {
        return instance.hasBlurRadius();
      }
      /**
       * <pre>
       * The blur radius of the shadow. It controls the size of the blur that is
       * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getBlurRadius() {
        return instance.getBlurRadius();
      }
      /**
       * <pre>
       * The blur radius of the shadow. It controls the size of the blur that is
       * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
       */
      public Builder setBlurRadius(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setBlurRadius(value);
        return this;
        }
      /**
       * <pre>
       * The blur radius of the shadow. It controls the size of the blur that is
       * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
       */
      public Builder setBlurRadius(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setBlurRadius(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The blur radius of the shadow. It controls the size of the blur that is
       * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
       */
      public Builder mergeBlurRadius(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeBlurRadius(value);
        return this;
      }
      /**
       * <pre>
       * The blur radius of the shadow. It controls the size of the blur that is
       * drawn. When set to zero, the shadow is not drawn. Defaults to zero.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp blur_radius = 1;</code>
       */
      public Builder clearBlurRadius() {  copyOnWrite();
        instance.clearBlurRadius();
        return this;
      }

      /**
       * <pre>
       * The color used in the shadow. Defaults to Black.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      @java.lang.Override
      public boolean hasColor() {
        return instance.hasColor();
      }
      /**
       * <pre>
       * The color used in the shadow. Defaults to Black.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ColorProto.ColorProp getColor() {
        return instance.getColor();
      }
      /**
       * <pre>
       * The color used in the shadow. Defaults to Black.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      public Builder setColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.setColor(value);
        return this;
        }
      /**
       * <pre>
       * The color used in the shadow. Defaults to Black.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      public Builder setColor(
          androidx.wear.protolayout.proto.ColorProto.ColorProp.Builder builderForValue) {
        copyOnWrite();
        instance.setColor(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The color used in the shadow. Defaults to Black.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      public Builder mergeColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.mergeColor(value);
        return this;
      }
      /**
       * <pre>
       * The color used in the shadow. Defaults to Black.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 2;</code>
       */
      public Builder clearColor() {  copyOnWrite();
        instance.clearColor();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Shadow)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.wear.protolayout.proto.ModifiersProto.Shadow();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "blurRadius_",
              "color_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.ModifiersProto.Shadow> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.ModifiersProto.Shadow.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.ModifiersProto.Shadow>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.wear.protolayout.proto.Shadow)
    private static final androidx.wear.protolayout.proto.ModifiersProto.Shadow DEFAULT_INSTANCE;
    static {
      Shadow defaultInstance = new Shadow();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Shadow.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.ModifiersProto.Shadow getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Shadow> PARSER;

    public static com.google.protobuf.Parser<Shadow> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}