// Signature format: 2.0
package android.net {

  public final class TetheringConstants {
    field public static final String EXTRA_ADD_TETHER_TYPE = "extraAddTetherType";
    field public static final String EXTRA_PROVISION_CALLBACK = "extraProvisionCallback";
    field public static final String EXTRA_REM_TETHER_TYPE = "extraRemTetherType";
    field public static final String EXTRA_RUN_PROVISION = "extraRunProvision";
    field public static final String EXTRA_SET_ALARM = "extraSetAlarm";
  }

  public class TetheringManager {
    ctor public TetheringManager(@NonNull android.content.Context, @NonNull java.util.function.Supplier<android.os.IBinder>);
    method public int getLastTetherError(@NonNull String);
    method @NonNull public String[] getTetherableBluetoothRegexs();
    method @NonNull public String[] getTetherableIfaces();
    method @NonNull public String[] getTetherableUsbRegexs();
    method @NonNull public String[] getTetherableWifiRegexs();
    method @NonNull public String[] getTetheredIfaces();
    method @NonNull public String[] getTetheringErroredIfaces();
    method public boolean isTetheringSupported();
    method public boolean isTetheringSupported(@NonNull String);
    method public void requestLatestTetheringEntitlementResult(int, @NonNull android.os.ResultReceiver, boolean);
    method @Deprecated public int setUsbTethering(boolean);
    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(int, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
    method @Deprecated public int tether(@NonNull String);
    method @Deprecated public int untether(@NonNull String);
  }

  public static interface TetheringManager.TetheredInterfaceCallback {
    method public void onAvailable(@NonNull String);
    method public void onUnavailable();
  }

  public static interface TetheringManager.TetheredInterfaceRequest {
    method public void release();
  }

  public static interface TetheringManager.TetheringEventCallback {
    method @Deprecated public default void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
  }

  @Deprecated public static class TetheringManager.TetheringInterfaceRegexps {
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
  }

}

