// Signature format: 4.0
package androidx.navigation {

  public final class ActionOnlyNavDirections implements androidx.navigation.NavDirections {
    ctor public ActionOnlyNavDirections(int actionId);
    method public int component1();
    method public androidx.navigation.ActionOnlyNavDirections copy(int actionId);
    method public int getActionId();
    method public android.os.Bundle getArguments();
    property public int actionId;
    property public android.os.Bundle arguments;
  }

  public interface FloatingWindow {
  }

  public final class NavAction {
    ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions, optional android.os.Bundle? defaultArguments);
    ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions);
    ctor public NavAction(@IdRes int destinationId);
    method public android.os.Bundle? getDefaultArguments();
    method public int getDestinationId();
    method public androidx.navigation.NavOptions? getNavOptions();
    method public void setDefaultArguments(android.os.Bundle? p);
    method public void setNavOptions(androidx.navigation.NavOptions? p);
    property public final android.os.Bundle? defaultArguments;
    property public final int destinationId;
    property public final androidx.navigation.NavOptions? navOptions;
  }

  public interface NavArgs {
  }

  public final class NavArgument {
    method public Object? getDefaultValue();
    method public androidx.navigation.NavType<java.lang.Object> getType();
    method public boolean isDefaultValuePresent();
    method public boolean isNullable();
    property public final Object? defaultValue;
    property public final boolean isDefaultValuePresent;
    property public final boolean isNullable;
    property public final androidx.navigation.NavType<java.lang.Object> type;
  }

  public static final class NavArgument.Builder {
    ctor public NavArgument.Builder();
    method public androidx.navigation.NavArgument build();
    method public androidx.navigation.NavArgument.Builder setDefaultValue(Object? defaultValue);
    method public androidx.navigation.NavArgument.Builder setIsNullable(boolean isNullable);
    method public <T> androidx.navigation.NavArgument.Builder setType(androidx.navigation.NavType<T> type);
  }

  public final class NavDeepLink {
    method public String? getAction();
    method public String? getMimeType();
    method public String? getUriPattern();
    property public final String? action;
    property public final String? mimeType;
    property public final String? uriPattern;
  }

  public static final class NavDeepLink.Builder {
    method public androidx.navigation.NavDeepLink build();
    method public static androidx.navigation.NavDeepLink.Builder fromAction(String action);
    method public static androidx.navigation.NavDeepLink.Builder fromMimeType(String mimeType);
    method public static androidx.navigation.NavDeepLink.Builder fromUriPattern(String uriPattern);
    method public androidx.navigation.NavDeepLink.Builder setAction(String action);
    method public androidx.navigation.NavDeepLink.Builder setMimeType(String mimeType);
    method public androidx.navigation.NavDeepLink.Builder setUriPattern(String uriPattern);
  }

  public class NavDeepLinkRequest {
    method public String? getAction();
    method public String? getMimeType();
    method public android.net.Uri? getUri();
    property public String? action;
    property public String? mimeType;
    property public android.net.Uri? uri;
  }

  public static final class NavDeepLinkRequest.Builder {
    method public androidx.navigation.NavDeepLinkRequest build();
    method public static androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action);
    method public static androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType);
    method public static androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri);
    method public androidx.navigation.NavDeepLinkRequest.Builder setAction(String action);
    method public androidx.navigation.NavDeepLinkRequest.Builder setMimeType(String mimeType);
    method public androidx.navigation.NavDeepLinkRequest.Builder setUri(android.net.Uri uri);
    field public static final androidx.navigation.NavDeepLinkRequest.Builder.Companion Companion;
  }

  public static final class NavDeepLinkRequest.Builder.Companion {
    method public androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action);
    method public androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType);
    method public androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri);
  }

  public class NavDestination {
    ctor public NavDestination(String navigatorName);
    ctor public NavDestination(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
    method public final void addArgument(String argumentName, androidx.navigation.NavArgument argument);
    method public final void addDeepLink(String uriPattern);
    method public final void addDeepLink(androidx.navigation.NavDeepLink navDeepLink);
    method public final androidx.navigation.NavAction? getAction(@IdRes int id);
    method public final java.util.Map<java.lang.String,androidx.navigation.NavArgument> getArguments();
    method @IdRes public final int getId();
    method public final CharSequence? getLabel();
    method public final String getNavigatorName();
    method public final androidx.navigation.NavGraph? getParent();
    method public boolean hasDeepLink(android.net.Uri deepLink);
    method public boolean hasDeepLink(androidx.navigation.NavDeepLinkRequest deepLinkRequest);
    method @CallSuper public void onInflate(android.content.Context context, android.util.AttributeSet attrs);
    method protected static final <C> Class<? extends C> parseClassFromName(android.content.Context context, String name, Class<? extends C> expectedClassType);
    method public final void putAction(@IdRes int actionId, @IdRes int destId);
    method public final void putAction(@IdRes int actionId, androidx.navigation.NavAction action);
    method public final void removeAction(@IdRes int actionId);
    method public final void removeArgument(String argumentName);
    method public final void setId(int id);
    method public final void setLabel(CharSequence? p);
    property public final java.util.Map<java.lang.String,androidx.navigation.NavArgument> arguments;
    property @IdRes public final int id;
    property public final CharSequence? label;
    property public final String navigatorName;
    property public final androidx.navigation.NavGraph? parent;
    field public static final androidx.navigation.NavDestination.Companion Companion;
  }

  @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget}) public static @interface NavDestination.ClassType {
    method public abstract Class<?> value();
    property public abstract Class<?> value;
  }

  public static final class NavDestination.Companion {
    method protected <C> Class<? extends C> parseClassFromName(android.content.Context context, String name, Class<? extends C> expectedClassType);
  }

  public interface NavDirections {
    method @IdRes public int getActionId();
    method public android.os.Bundle getArguments();
    property @IdRes public abstract int actionId;
    property public abstract android.os.Bundle arguments;
  }

  public class NavGraph extends androidx.navigation.NavDestination implements java.lang.Iterable<androidx.navigation.NavDestination> kotlin.jvm.internal.markers.KMappedMarker {
    ctor public NavGraph(androidx.navigation.Navigator<? extends androidx.navigation.NavGraph> navGraphNavigator);
    method public final void addAll(androidx.navigation.NavGraph other);
    method public final void addDestination(androidx.navigation.NavDestination node);
    method public final void addDestinations(java.util.Collection<? extends androidx.navigation.NavDestination> nodes);
    method public final void addDestinations(androidx.navigation.NavDestination... nodes);
    method public final void clear();
    method public final androidx.navigation.NavDestination? findNode(@IdRes int resid);
    method @IdRes public final int getStartDestination();
    method public final java.util.Iterator<androidx.navigation.NavDestination> iterator();
    method public final void remove(androidx.navigation.NavDestination node);
    method public final void setStartDestination(int startDestId);
    property @IdRes public final int startDestination;
  }

  @androidx.navigation.Navigator.Name("navigation") public class NavGraphNavigator extends androidx.navigation.Navigator<androidx.navigation.NavGraph> {
    ctor public NavGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider);
    method public androidx.navigation.NavGraph createDestination();
    method public androidx.navigation.NavDestination? navigate(androidx.navigation.NavGraph destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
    method public boolean popBackStack();
  }

  public final class NavOptions {
    method @AnimRes @AnimatorRes public int getEnterAnim();
    method @AnimRes @AnimatorRes public int getExitAnim();
    method @AnimRes @AnimatorRes public int getPopEnterAnim();
    method @AnimRes @AnimatorRes public int getPopExitAnim();
    method @IdRes public int getPopUpTo();
    method public boolean isPopUpToInclusive();
    method public boolean shouldLaunchSingleTop();
    property @AnimRes @AnimatorRes public final int enterAnim;
    property @AnimRes @AnimatorRes public final int exitAnim;
    property @AnimRes @AnimatorRes public final int popEnterAnim;
    property @AnimRes @AnimatorRes public final int popExitAnim;
    property @IdRes public final int popUpTo;
  }

  public static final class NavOptions.Builder {
    ctor public NavOptions.Builder();
    method public androidx.navigation.NavOptions build();
    method public androidx.navigation.NavOptions.Builder setEnterAnim(@AnimRes @AnimatorRes int enterAnim);
    method public androidx.navigation.NavOptions.Builder setExitAnim(@AnimRes @AnimatorRes int exitAnim);
    method public androidx.navigation.NavOptions.Builder setLaunchSingleTop(boolean singleTop);
    method public androidx.navigation.NavOptions.Builder setPopEnterAnim(@AnimRes @AnimatorRes int popEnterAnim);
    method public androidx.navigation.NavOptions.Builder setPopExitAnim(@AnimRes @AnimatorRes int popExitAnim);
    method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive);
  }

  public abstract class NavType<T> {
    method public static androidx.navigation.NavType<?> fromArgType(String? type, String? packageName);
    method public abstract operator T? get(android.os.Bundle bundle, String key);
    method public abstract String getName();
    method public boolean isNullableAllowed();
    method public abstract T! parseValue(String value);
    method public abstract void put(android.os.Bundle bundle, String key, T? value);
    property public boolean isNullableAllowed;
    property public abstract String name;
    field public static final androidx.navigation.NavType<boolean[]> BoolArrayType;
    field public static final androidx.navigation.NavType<java.lang.Boolean> BoolType;
    field public static final androidx.navigation.NavType.Companion Companion;
    field public static final androidx.navigation.NavType<float[]> FloatArrayType;
    field public static final androidx.navigation.NavType<java.lang.Float> FloatType;
    field public static final androidx.navigation.NavType<int[]> IntArrayType;
    field public static final androidx.navigation.NavType<java.lang.Integer> IntType;
    field public static final androidx.navigation.NavType<long[]> LongArrayType;
    field public static final androidx.navigation.NavType<java.lang.Long> LongType;
    field public static final androidx.navigation.NavType<java.lang.Integer> ReferenceType;
    field public static final androidx.navigation.NavType<java.lang.String[]> StringArrayType;
    field public static final androidx.navigation.NavType<java.lang.String> StringType;
  }

  public static final class NavType.Companion {
    method public androidx.navigation.NavType<?> fromArgType(String? type, String? packageName);
  }

  public static final class NavType.EnumType<D extends java.lang.Enum<?>> extends androidx.navigation.NavType.SerializableType<D> {
    ctor public NavType.EnumType(Class<D> type);
    property public String name;
  }

  public static final class NavType.ParcelableArrayType<D extends android.os.Parcelable> extends androidx.navigation.NavType<D[]> {
    ctor public NavType.ParcelableArrayType(Class<D> type);
    method public D![]? get(android.os.Bundle bundle, String key);
    method public String getName();
    method public D![] parseValue(String value);
    method public void put(android.os.Bundle bundle, String key, D![]? value);
    property public String name;
  }

  public static final class NavType.ParcelableType<D> extends androidx.navigation.NavType<D> {
    ctor public NavType.ParcelableType(Class<D> type);
    method public D? get(android.os.Bundle bundle, String key);
    method public String getName();
    method public D! parseValue(String value);
    method public void put(android.os.Bundle bundle, String key, D? value);
    property public String name;
  }

  public static final class NavType.SerializableArrayType<D extends java.io.Serializable> extends androidx.navigation.NavType<D[]> {
    ctor public NavType.SerializableArrayType(Class<D> type);
    method public D![]? get(android.os.Bundle bundle, String key);
    method public String getName();
    method public D![] parseValue(String value);
    method public void put(android.os.Bundle bundle, String key, D![]? value);
    property public String name;
  }

  public static class NavType.SerializableType<D extends java.io.Serializable> extends androidx.navigation.NavType<D> {
    ctor public NavType.SerializableType(Class<D> type);
    method public D? get(android.os.Bundle bundle, String key);
    method public String getName();
    method public D parseValue(String value);
    method public void put(android.os.Bundle bundle, String key, D value);
    property public String name;
  }

  public abstract class Navigator<D extends androidx.navigation.NavDestination> {
    ctor public Navigator();
    method public abstract D createDestination();
    method public abstract androidx.navigation.NavDestination? navigate(D destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
    method public void onRestoreState(android.os.Bundle savedState);
    method public android.os.Bundle? onSaveState();
    method public abstract boolean popBackStack();
  }

  public static interface Navigator.Extras {
  }

  @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget, kotlin.annotation.AnnotationTarget}) public static @interface Navigator.Name {
    method public abstract String value();
    property public abstract String value;
  }

  public class NavigatorProvider {
    ctor public NavigatorProvider();
    method public final androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? addNavigator(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
    method @CallSuper public androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? addNavigator(String name, androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
    method public final <T extends androidx.navigation.Navigator<?>> T getNavigator(Class<T> navigatorClass);
    method @CallSuper public <T extends androidx.navigation.Navigator<?>> T getNavigator(String name);
  }

}

