// Signature format: 3.0
package androidx.slice {

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface Clock {
    method public long currentTimeMillis();
  }

  @RequiresApi(19) @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true, isCustom=true) public final class Slice extends androidx.versionedparcelable.CustomVersionedParcelable implements androidx.versionedparcelable.VersionedParcelable {
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.slice.Slice? bindSlice(android.content.Context!, android.net.Uri, java.util.Set<androidx.slice.SliceSpec!>!);
    method public java.util.List<java.lang.String!>! getHints();
    method public java.util.List<androidx.slice.SliceItem!>! getItems();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.slice.SliceSpec? getSpec();
    method public android.net.Uri! getUri();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean hasHint(String!);
    field public static final String EXTRA_SELECTION = "android.app.slice.extra.SELECTION";
    field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final String SUBTYPE_RANGE_MODE = "range_mode";
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static class Slice.Builder {
    ctor public Slice.Builder(android.net.Uri);
    ctor public Slice.Builder(androidx.slice.Slice.Builder);
    method public androidx.slice.Slice.Builder! addAction(android.app.PendingIntent, androidx.slice.Slice, String?);
    method public androidx.slice.Slice.Builder! addAction(androidx.slice.SliceItem.ActionHandler, androidx.slice.Slice, String?);
    method public androidx.slice.Slice.Builder! addHints(java.lang.String!...);
    method public androidx.slice.Slice.Builder! addHints(java.util.List<java.lang.String!>!);
    method public androidx.slice.Slice.Builder! addIcon(androidx.core.graphics.drawable.IconCompat!, String?, java.lang.String!...);
    method public androidx.slice.Slice.Builder! addIcon(androidx.core.graphics.drawable.IconCompat!, String?, java.util.List<java.lang.String!>!);
    method public androidx.slice.Slice.Builder! addInt(int, String?, java.lang.String!...);
    method public androidx.slice.Slice.Builder! addInt(int, String?, java.util.List<java.lang.String!>!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.slice.Slice.Builder! addItem(androidx.slice.SliceItem!);
    method public androidx.slice.Slice.Builder! addLong(long, String?, java.lang.String!...);
    method public androidx.slice.Slice.Builder! addLong(long, String?, java.util.List<java.lang.String!>!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.slice.Slice.Builder! addRemoteInput(android.app.RemoteInput!, String?, java.util.List<java.lang.String!>!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.slice.Slice.Builder! addRemoteInput(android.app.RemoteInput!, String?, java.lang.String!...);
    method public androidx.slice.Slice.Builder! addSubSlice(androidx.slice.Slice);
    method public androidx.slice.Slice.Builder! addSubSlice(androidx.slice.Slice, String!);
    method public androidx.slice.Slice.Builder! addText(CharSequence!, String?, java.lang.String!...);
    method public androidx.slice.Slice.Builder! addText(CharSequence!, String?, java.util.List<java.lang.String!>!);
    method @Deprecated public androidx.slice.Slice.Builder! addTimestamp(long, String?, java.lang.String!...);
    method public androidx.slice.Slice.Builder! addTimestamp(long, String?, java.util.List<java.lang.String!>!);
    method public androidx.slice.Slice! build();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.slice.Slice.Builder! setSpec(androidx.slice.SliceSpec!);
  }

  @RequiresApi(28) public class SliceConvert {
    method public static android.app.slice.Slice! unwrap(androidx.slice.Slice!);
    method public static androidx.slice.Slice! wrap(android.app.slice.Slice!, android.content.Context!);
  }

  @RequiresApi(19) @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true, ignoreParcelables=true, isCustom=true) public final class SliceItem extends androidx.versionedparcelable.CustomVersionedParcelable {
    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public SliceItem(Object!, String!, String!, String![]!);
    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public SliceItem(Object!, String!, String!, java.util.List<java.lang.String!>!);
    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public SliceItem();
    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public SliceItem(android.app.PendingIntent!, androidx.slice.Slice!, String!, String!, String![]!);
    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public SliceItem(androidx.slice.SliceItem.ActionHandler!, androidx.slice.Slice!, String!, String!, String![]!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void addHint(String!);
    method public static android.text.ParcelableSpan createSensitiveSpan();
    method public void fireAction(android.content.Context?, android.content.Intent?) throws android.app.PendingIntent.CanceledException;
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean fireActionInternal(android.content.Context?, android.content.Intent?) throws android.app.PendingIntent.CanceledException;
    method public android.app.PendingIntent! getAction();
    method public String! getFormat();
    method public java.util.List<java.lang.String!> getHints();
    method public androidx.core.graphics.drawable.IconCompat! getIcon();
    method public int getInt();
    method public long getLong();
    method public CharSequence? getRedactedText();
    method @RequiresApi(20) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.app.RemoteInput! getRemoteInput();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public CharSequence! getSanitizedText();
    method public androidx.slice.Slice! getSlice();
    method public String! getSubType();
    method public CharSequence! getText();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean hasAnyHints(java.lang.String!...);
    method public boolean hasHint(String!);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static interface SliceItem.ActionHandler {
    method public void onAction(androidx.slice.SliceItem!, android.content.Context!, android.content.Intent!);
  }

  @RequiresApi(19) public abstract class SliceManager {
    method @androidx.core.content.PermissionChecker.PermissionResult public abstract int checkSlicePermission(android.net.Uri, int, int);
    method public static androidx.slice.SliceManager getInstance(android.content.Context);
    method public abstract java.util.List<android.net.Uri!> getPinnedSlices();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract java.util.Set<androidx.slice.SliceSpec!> getPinnedSpecs(android.net.Uri);
    method public abstract void grantSlicePermission(String, android.net.Uri);
    method public abstract void revokeSlicePermission(String, android.net.Uri);
  }

  public abstract class SliceProvider extends android.content.ContentProvider implements androidx.core.app.CoreComponentFactory.CompatWrapped {
    ctor public SliceProvider(java.lang.String!...);
    ctor public SliceProvider();
    method public final int bulkInsert(android.net.Uri, android.content.ContentValues![]);
    method @RequiresApi(19) public final android.net.Uri? canonicalize(android.net.Uri);
    method public final int delete(android.net.Uri, String?, String![]?);
    method @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.slice.Clock? getClock();
    method @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static java.util.Set<androidx.slice.SliceSpec!>? getCurrentSpecs();
    method @RequiresApi(19) public java.util.List<android.net.Uri!> getPinnedSlices();
    method public final String? getType(android.net.Uri);
    method @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY) public Object? getWrapper();
    method public final android.net.Uri? insert(android.net.Uri, android.content.ContentValues?);
    method @RequiresApi(19) public abstract androidx.slice.Slice? onBindSlice(android.net.Uri);
    method public final boolean onCreate();
    method public android.app.PendingIntent? onCreatePermissionRequest(android.net.Uri, String);
    method @RequiresApi(19) public abstract boolean onCreateSliceProvider();
    method @RequiresApi(19) public java.util.Collection<android.net.Uri!> onGetSliceDescendants(android.net.Uri);
    method @RequiresApi(19) public android.net.Uri onMapIntentToUri(android.content.Intent);
    method @RequiresApi(19) public void onSlicePinned(android.net.Uri);
    method @RequiresApi(19) public void onSliceUnpinned(android.net.Uri);
    method public final android.database.Cursor? query(android.net.Uri, String![]?, String?, String![]?, String?);
    method @RequiresApi(28) public final android.database.Cursor? query(android.net.Uri, String![]?, android.os.Bundle?, android.os.CancellationSignal?);
    method @RequiresApi(16) public final android.database.Cursor? query(android.net.Uri, String![]?, String?, String![]?, String?, android.os.CancellationSignal?);
    method public final int update(android.net.Uri, android.content.ContentValues?, String?, String![]?);
  }

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true) public final class SliceSpec implements androidx.versionedparcelable.VersionedParcelable {
    ctor public SliceSpec(String, int);
    method public boolean canRender(androidx.slice.SliceSpec);
    method public int getRevision();
    method public String! getType();
  }

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class SliceSpecs {
    field public static final androidx.slice.SliceSpec! BASIC;
    field public static final androidx.slice.SliceSpec! LIST;
    field public static final androidx.slice.SliceSpec! LIST_V2;
    field public static final androidx.slice.SliceSpec! MESSAGING;
  }

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class SystemClock implements androidx.slice.Clock {
    ctor public SystemClock();
    method public long currentTimeMillis();
  }

}

package androidx.slice.compat {

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class SliceProviderCompat {
    ctor public SliceProviderCompat(androidx.slice.SliceProvider, androidx.slice.compat.CompatPermissionManager, android.content.Context);
    method public static void addSpecs(android.os.Bundle, java.util.Set<androidx.slice.SliceSpec!>);
    method public static androidx.slice.Slice? bindSlice(android.content.Context, android.net.Uri, java.util.Set<androidx.slice.SliceSpec!>);
    method public static androidx.slice.Slice? bindSlice(android.content.Context, android.content.Intent, java.util.Set<androidx.slice.SliceSpec!>);
    method public android.os.Bundle? call(String, String?, android.os.Bundle);
    method public static int checkSlicePermission(android.content.Context, String?, android.net.Uri, int, int);
    method public String? getCallingPackage();
    method public static java.util.List<android.net.Uri!> getPinnedSlices(android.content.Context);
    method public static java.util.Set<androidx.slice.SliceSpec!>? getPinnedSpecs(android.content.Context, android.net.Uri);
    method public static java.util.Collection<android.net.Uri!> getSliceDescendants(android.content.Context, android.net.Uri);
    method public static java.util.Set<androidx.slice.SliceSpec!> getSpecs(android.os.Bundle);
    method public static void grantSlicePermission(android.content.Context, String?, String?, android.net.Uri);
    method public static android.net.Uri? mapIntentToUri(android.content.Context, android.content.Intent);
    method public static void pinSlice(android.content.Context, android.net.Uri, java.util.Set<androidx.slice.SliceSpec!>);
    method public static void revokeSlicePermission(android.content.Context, String?, String?, android.net.Uri);
    method public static void unpinSlice(android.content.Context, android.net.Uri, java.util.Set<androidx.slice.SliceSpec!>);
    field public static final String ARG_SUPPORTS_VERSIONED_PARCELABLE = "supports_versioned_parcelable";
    field public static final String EXTRA_BIND_URI = "slice_uri";
    field public static final String EXTRA_INTENT = "slice_intent";
    field public static final String EXTRA_PID = "pid";
    field public static final String EXTRA_PKG = "pkg";
    field public static final String EXTRA_PROVIDER_PKG = "provider_pkg";
    field public static final String EXTRA_RESULT = "result";
    field public static final String EXTRA_SLICE = "slice";
    field public static final String EXTRA_SLICE_DESCENDANTS = "slice_descendants";
    field public static final String EXTRA_SUPPORTED_SPECS = "specs";
    field public static final String EXTRA_SUPPORTED_SPECS_REVS = "revs";
    field public static final String EXTRA_UID = "uid";
    field public static final String METHOD_CHECK_PERMISSION = "check_perms";
    field public static final String METHOD_GET_DESCENDANTS = "get_descendants";
    field public static final String METHOD_GET_PINNED_SPECS = "get_specs";
    field public static final String METHOD_GRANT_PERMISSION = "grant_perms";
    field public static final String METHOD_MAP_INTENT = "map_slice";
    field public static final String METHOD_MAP_ONLY_INTENT = "map_only";
    field public static final String METHOD_PIN = "pin_slice";
    field public static final String METHOD_REVOKE_PERMISSION = "revoke_perms";
    field public static final String METHOD_SLICE = "bind_slice";
    field public static final String METHOD_UNPIN = "unpin_slice";
    field public static final String PERMS_PREFIX = "slice_perms_";
  }

}

package androidx.slice.core {

  @RequiresApi(19) public interface SliceAction {
    method public android.app.PendingIntent getAction();
    method public CharSequence? getContentDescription();
    method public androidx.core.graphics.drawable.IconCompat? getIcon();
    method @androidx.slice.core.SliceHints.ImageMode public int getImageMode();
    method public int getPriority();
    method public CharSequence getTitle();
    method public boolean isActivity();
    method public boolean isChecked();
    method public boolean isDefaultToggle();
    method public boolean isToggle();
    method public androidx.slice.core.SliceAction! setChecked(boolean);
    method public androidx.slice.core.SliceAction? setContentDescription(CharSequence);
    method public androidx.slice.core.SliceAction! setPriority(@IntRange(from=0) int);
  }

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class SliceActionImpl implements androidx.slice.core.SliceAction {
    ctor public SliceActionImpl(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, CharSequence);
    ctor public SliceActionImpl(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, @androidx.slice.core.SliceHints.ImageMode int, CharSequence);
    ctor public SliceActionImpl(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, CharSequence, boolean);
    ctor public SliceActionImpl(android.app.PendingIntent, CharSequence, boolean);
    ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public SliceActionImpl(androidx.slice.SliceItem!);
    method public androidx.slice.Slice buildPrimaryActionSlice(androidx.slice.Slice.Builder);
    method public androidx.slice.Slice buildSlice(androidx.slice.Slice.Builder);
    method public android.app.PendingIntent getAction();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.slice.SliceItem! getActionItem();
    method public CharSequence? getContentDescription();
    method public androidx.core.graphics.drawable.IconCompat? getIcon();
    method @androidx.slice.core.SliceHints.ImageMode public int getImageMode();
    method public int getPriority();
    method public androidx.slice.SliceItem? getSliceItem();
    method public String? getSubtype();
    method public CharSequence getTitle();
    method public boolean isActivity();
    method public boolean isChecked();
    method public boolean isDefaultToggle();
    method public boolean isToggle();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static int parseImageMode(androidx.slice.SliceItem);
    method public void setActivity(boolean);
    method public androidx.slice.core.SliceActionImpl! setChecked(boolean);
    method public androidx.slice.core.SliceActionImpl? setContentDescription(CharSequence);
    method public androidx.slice.core.SliceActionImpl! setPriority(@IntRange(from=0) int);
  }

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class SliceHints {
    field public static final int DETERMINATE_RANGE = 0; // 0x0
    field public static final String HINT_ACTIVITY = "activity";
    field public static final String HINT_CACHED = "cached";
    field public static final String HINT_RAW = "raw";
    field public static final String HINT_SELECTION_OPTION = "selection_option";
    field public static final int ICON_IMAGE = 0; // 0x0
    field public static final int INDETERMINATE_RANGE = 1; // 0x1
    field public static final long INFINITY = -1L; // 0xffffffffffffffffL
    field public static final int LARGE_IMAGE = 2; // 0x2
    field public static final int RAW_IMAGE_LARGE = 4; // 0x4
    field public static final int RAW_IMAGE_SMALL = 3; // 0x3
    field public static final String SLICE_METADATA_KEY = "android.metadata.SLICE_URI";
    field public static final int SMALL_IMAGE = 1; // 0x1
    field public static final String SUBTYPE_MILLIS = "millis";
    field public static final String SUBTYPE_MIN = "min";
    field public static final String SUBTYPE_SELECTION = "selection";
    field public static final String SUBTYPE_SELECTION_OPTION_KEY = "selection_option_key";
    field public static final String SUBTYPE_SELECTION_OPTION_VALUE = "selection_option_value";
    field public static final int UNKNOWN_IMAGE = 5; // 0x5
  }

  @IntDef({androidx.slice.core.SliceHints.LARGE_IMAGE, androidx.slice.core.SliceHints.SMALL_IMAGE, androidx.slice.core.SliceHints.ICON_IMAGE, androidx.slice.core.SliceHints.RAW_IMAGE_SMALL, androidx.slice.core.SliceHints.RAW_IMAGE_LARGE, androidx.slice.core.SliceHints.UNKNOWN_IMAGE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface SliceHints.ImageMode {
  }

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class SliceQuery {
    method public static androidx.slice.SliceItem! find(androidx.slice.Slice!, String!, String!, String!);
    method public static androidx.slice.SliceItem! find(androidx.slice.Slice!, String!);
    method public static androidx.slice.SliceItem! find(androidx.slice.SliceItem!, String!);
    method public static androidx.slice.SliceItem! find(androidx.slice.SliceItem!, String!, String!, String!);
    method public static androidx.slice.SliceItem! find(androidx.slice.Slice!, String!, String![]!, String![]!);
    method public static androidx.slice.SliceItem! find(androidx.slice.SliceItem!, String!, String![]!, String![]!);
    method public static java.util.List<androidx.slice.SliceItem!>! findAll(androidx.slice.SliceItem!, String!);
    method public static java.util.List<androidx.slice.SliceItem!>! findAll(androidx.slice.Slice!, String!, String!, String!);
    method public static java.util.List<androidx.slice.SliceItem!>! findAll(androidx.slice.SliceItem!, String!, String!, String!);
    method public static java.util.List<androidx.slice.SliceItem!>! findAll(androidx.slice.Slice!, String!, String![]!, String![]!);
    method public static java.util.List<androidx.slice.SliceItem!>! findAll(androidx.slice.SliceItem!, String!, String![]!, String![]!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.slice.SliceItem! findItem(androidx.slice.Slice!, android.net.Uri!);
    method public static androidx.slice.SliceItem! findNotContaining(androidx.slice.SliceItem!, java.util.List<androidx.slice.SliceItem!>!);
    method public static androidx.slice.SliceItem! findSubtype(androidx.slice.Slice!, String!, String!);
    method public static androidx.slice.SliceItem! findSubtype(androidx.slice.SliceItem!, String!, String!);
    method public static androidx.slice.SliceItem! findTopLevelItem(androidx.slice.Slice!, String!, String!, String![]!, String![]!);
    method public static boolean hasAnyHints(androidx.slice.SliceItem!, java.lang.String!...);
    method public static boolean hasHints(androidx.slice.SliceItem!, java.lang.String!...);
    method public static boolean hasHints(androidx.slice.Slice!, java.lang.String!...);
  }

}

