// Signature format: 4.0
package androidx.versionedparcelable {

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class CustomVersionedParcelable implements androidx.versionedparcelable.VersionedParcelable {
    ctor public CustomVersionedParcelable();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void onPostParceling();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void onPreParceling(boolean);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target(java.lang.annotation.ElementType.FIELD) public @interface NonParcelField {
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target(java.lang.annotation.ElementType.FIELD) public @interface ParcelField {
    method public abstract String defaultValue() default "";
    method public abstract int value();
  }

  public class ParcelUtils {
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static <T extends androidx.versionedparcelable.VersionedParcelable> T? fromInputStream(java.io.InputStream);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static <T extends androidx.versionedparcelable.VersionedParcelable> T? fromParcelable(android.os.Parcelable);
    method public static <T extends androidx.versionedparcelable.VersionedParcelable> T? getVersionedParcelable(android.os.Bundle, String);
    method public static <T extends androidx.versionedparcelable.VersionedParcelable> java.util.List<T!> getVersionedParcelableList(android.os.Bundle, String?);
    method public static void putVersionedParcelable(android.os.Bundle, String, androidx.versionedparcelable.VersionedParcelable?);
    method public static void putVersionedParcelableList(android.os.Bundle, String, java.util.List<? extends androidx.versionedparcelable.VersionedParcelable>);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void toOutputStream(androidx.versionedparcelable.VersionedParcelable?, java.io.OutputStream);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.os.Parcelable toParcelable(androidx.versionedparcelable.VersionedParcelable?);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class VersionedParcel {
    method protected abstract void closeField();
    method protected abstract androidx.versionedparcelable.VersionedParcel createSubParcel();
    method protected static Throwable getRootCause(Throwable);
    method public boolean isStream();
    method protected <T> T![]? readArray(T![]?);
    method public <T> T![]? readArray(T![]?, int);
    method protected abstract boolean readBoolean();
    method public boolean readBoolean(boolean, int);
    method protected boolean[]? readBooleanArray();
    method public boolean[]? readBooleanArray(boolean[]?, int);
    method protected abstract android.os.Bundle? readBundle();
    method public android.os.Bundle? readBundle(android.os.Bundle?, int);
    method public byte readByte(byte, int);
    method protected abstract byte[]? readByteArray();
    method public byte[]? readByteArray(byte[]?, int);
    method public char[]? readCharArray(char[]?, int);
    method protected abstract CharSequence? readCharSequence();
    method public CharSequence? readCharSequence(CharSequence?, int);
    method protected abstract double readDouble();
    method public double readDouble(double, int);
    method protected double[]? readDoubleArray();
    method public double[]? readDoubleArray(double[]?, int);
    method public Exception? readException(Exception?, int);
    method protected abstract boolean readField(int);
    method protected abstract float readFloat();
    method public float readFloat(float, int);
    method protected float[]? readFloatArray();
    method public float[]? readFloatArray(float[]?, int);
    method protected <T extends androidx.versionedparcelable.VersionedParcelable> T readFromParcel(String, androidx.versionedparcelable.VersionedParcel);
    method protected abstract int readInt();
    method public int readInt(int, int);
    method protected int[]? readIntArray();
    method public int[]? readIntArray(int[]?, int);
    method public <T> java.util.List<T!>? readList(java.util.List<T!>?, int);
    method protected abstract long readLong();
    method public long readLong(long, int);
    method protected long[]? readLongArray();
    method public long[]? readLongArray(long[]?, int);
    method public <K, V> java.util.Map<K!,V!>? readMap(java.util.Map<K!,V!>?, int);
    method protected abstract <T extends android.os.Parcelable> T? readParcelable();
    method public <T extends android.os.Parcelable> T? readParcelable(T?, int);
    method protected java.io.Serializable? readSerializable();
    method public <T> java.util.Set<T!>? readSet(java.util.Set<T!>?, int);
    method @RequiresApi(21) public android.util.Size? readSize(android.util.Size?, int);
    method @RequiresApi(21) public android.util.SizeF? readSizeF(android.util.SizeF?, int);
    method public android.util.SparseBooleanArray? readSparseBooleanArray(android.util.SparseBooleanArray?, int);
    method protected abstract String? readString();
    method public String? readString(String?, int);
    method protected abstract android.os.IBinder? readStrongBinder();
    method public android.os.IBinder? readStrongBinder(android.os.IBinder?, int);
    method protected <T extends androidx.versionedparcelable.VersionedParcelable> T? readVersionedParcelable();
    method public <T extends androidx.versionedparcelable.VersionedParcelable> T? readVersionedParcelable(T?, int);
    method protected abstract void setOutputField(int);
    method public void setSerializationFlags(boolean, boolean);
    method protected <T> void writeArray(T![]?);
    method public <T> void writeArray(T![]?, int);
    method protected abstract void writeBoolean(boolean);
    method public void writeBoolean(boolean, int);
    method protected void writeBooleanArray(boolean[]?);
    method public void writeBooleanArray(boolean[]?, int);
    method protected abstract void writeBundle(android.os.Bundle?);
    method public void writeBundle(android.os.Bundle?, int);
    method public void writeByte(byte, int);
    method protected abstract void writeByteArray(byte[]?);
    method public void writeByteArray(byte[]?, int);
    method protected abstract void writeByteArray(byte[]?, int, int);
    method public void writeByteArray(byte[]?, int, int, int);
    method public void writeCharArray(char[]?, int);
    method protected abstract void writeCharSequence(CharSequence?);
    method public void writeCharSequence(CharSequence?, int);
    method protected abstract void writeDouble(double);
    method public void writeDouble(double, int);
    method protected void writeDoubleArray(double[]?);
    method public void writeDoubleArray(double[]?, int);
    method public void writeException(Exception?, int);
    method protected abstract void writeFloat(float);
    method public void writeFloat(float, int);
    method protected void writeFloatArray(float[]?);
    method public void writeFloatArray(float[]?, int);
    method protected abstract void writeInt(int);
    method public void writeInt(int, int);
    method protected void writeIntArray(int[]?);
    method public void writeIntArray(int[]?, int);
    method public <T> void writeList(java.util.List<T!>?, int);
    method protected abstract void writeLong(long);
    method public void writeLong(long, int);
    method protected void writeLongArray(long[]?);
    method public void writeLongArray(long[]?, int);
    method public <K, V> void writeMap(java.util.Map<K!,V!>?, int);
    method protected void writeNoException();
    method protected abstract void writeParcelable(android.os.Parcelable?);
    method public void writeParcelable(android.os.Parcelable?, int);
    method public void writeSerializable(java.io.Serializable?, int);
    method public <T> void writeSet(java.util.Set<T!>?, int);
    method @RequiresApi(21) public void writeSize(android.util.Size?, int);
    method @RequiresApi(21) public void writeSizeF(android.util.SizeF?, int);
    method public void writeSparseBooleanArray(android.util.SparseBooleanArray?, int);
    method protected abstract void writeString(String?);
    method public void writeString(String?, int);
    method protected abstract void writeStrongBinder(android.os.IBinder?);
    method public void writeStrongBinder(android.os.IBinder?, int);
    method protected abstract void writeStrongInterface(android.os.IInterface?);
    method public void writeStrongInterface(android.os.IInterface?, int);
    method protected <T extends androidx.versionedparcelable.VersionedParcelable> void writeToParcel(T, androidx.versionedparcelable.VersionedParcel);
    method protected void writeVersionedParcelable(androidx.versionedparcelable.VersionedParcelable?);
    method public void writeVersionedParcelable(androidx.versionedparcelable.VersionedParcelable?, int);
  }

  public static class VersionedParcel.ParcelException extends java.lang.RuntimeException {
    ctor public VersionedParcel.ParcelException(Throwable?);
  }

  public interface VersionedParcelable {
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE) public @interface VersionedParcelize {
    method public abstract boolean allowSerialization() default false;
    method public abstract int[] deprecatedIds() default {};
    method public abstract Class<?> factory() default void.class;
    method public abstract boolean ignoreParcelables() default false;
    method public abstract boolean isCustom() default false;
    method public abstract String jetifyAs() default "";
  }

}

