// Signature format: 3.0
package androidx.versionedparcelable {

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

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

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.FIELD) public @interface ParcelField {
    method public abstract int value();
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class ParcelUtils {
    method public static <T extends androidx.versionedparcelable.VersionedParcelable> T! fromInputStream(java.io.InputStream!);
    method public static <T extends androidx.versionedparcelable.VersionedParcelable> T! fromParcelable(android.os.Parcelable!);
    method public static void toOutputStream(androidx.versionedparcelable.VersionedParcelable!, java.io.OutputStream!);
    method public static android.os.Parcelable! toParcelable(androidx.versionedparcelable.VersionedParcelable!);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class VersionedParcel {
    ctor public VersionedParcel();
    method protected abstract void closeField();
    method protected abstract androidx.versionedparcelable.VersionedParcel! createSubParcel();
    method protected static Throwable getRootCause(Throwable);
    method public boolean isStream();
    method public <T> T![]! readArray(T![]!, int);
    method protected <T> T![]! readArray(T![]!);
    method protected abstract boolean readBoolean();
    method public boolean readBoolean(boolean, int);
    method public boolean[]! readBooleanArray(boolean[]!, int);
    method protected boolean[]! readBooleanArray();
    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 double readDouble();
    method public double readDouble(double, int);
    method public double[]! readDoubleArray(double[]!, int);
    method protected double[]! readDoubleArray();
    method public Exception! readException(Exception!, int);
    method protected abstract boolean readField(int);
    method protected abstract float readFloat();
    method public float readFloat(float, int);
    method public float[]! readFloatArray(float[]!, int);
    method protected float[]! readFloatArray();
    method protected static <T extends androidx.versionedparcelable.VersionedParcelable> T! readFromParcel(String!, androidx.versionedparcelable.VersionedParcel!);
    method protected abstract int readInt();
    method public int readInt(int, int);
    method public int[]! readIntArray(int[]!, int);
    method protected int[]! readIntArray();
    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 public long[]! readLongArray(long[]!, int);
    method protected long[]! readLongArray();
    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(api=android.os.Build.VERSION_CODES.LOLLIPOP) public android.util.Size! readSize(android.util.Size!, int);
    method @RequiresApi(api=android.os.Build.VERSION_CODES.LOLLIPOP) 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 public <T extends androidx.versionedparcelable.VersionedParcelable> T! readVersionedParcelable(T!, int);
    method protected <T extends androidx.versionedparcelable.VersionedParcelable> T! readVersionedParcelable();
    method protected abstract void setOutputField(int);
    method public void setSerializationFlags(boolean, boolean);
    method public <T> void writeArray(T![]!, int);
    method protected <T> void writeArray(T![]!);
    method protected abstract void writeBoolean(boolean);
    method public void writeBoolean(boolean, int);
    method public void writeBooleanArray(boolean[]!, int);
    method protected void writeBooleanArray(boolean[]!);
    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 protected abstract void writeByteArray(byte[]!, int, int);
    method public void writeByteArray(byte[]!, int);
    method public void writeByteArray(byte[]!, int, int, int);
    method public void writeCharArray(char[]!, int);
    method protected abstract void writeDouble(double);
    method public void writeDouble(double, int);
    method public void writeDoubleArray(double[]!, int);
    method protected void writeDoubleArray(double[]!);
    method public void writeException(Exception!, int);
    method protected abstract void writeFloat(float);
    method public void writeFloat(float, int);
    method public void writeFloatArray(float[]!, int);
    method protected void writeFloatArray(float[]!);
    method protected abstract void writeInt(int);
    method public void writeInt(int, int);
    method public void writeIntArray(int[]!, int);
    method protected void writeIntArray(int[]!);
    method public <T> void writeList(java.util.List<T!>!, int);
    method protected abstract void writeLong(long);
    method public void writeLong(long, int);
    method public void writeLongArray(long[]!, int);
    method protected void writeLongArray(long[]!);
    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(api=android.os.Build.VERSION_CODES.LOLLIPOP) public void writeSize(android.util.Size!, int);
    method @RequiresApi(api=android.os.Build.VERSION_CODES.LOLLIPOP) 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 static <T extends androidx.versionedparcelable.VersionedParcelable> void writeToParcel(T!, androidx.versionedparcelable.VersionedParcel!);
    method public void writeVersionedParcelable(androidx.versionedparcelable.VersionedParcelable!, int);
    method protected void writeVersionedParcelable(androidx.versionedparcelable.VersionedParcelable!);
  }

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

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface VersionedParcelable {
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @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 boolean ignoreParcelables() default false;
    method public abstract boolean isCustom() default false;
    method public abstract String jetifyAs() default "";
  }

}

