/**@class android.net.NetworkCapabilities
 implements android.os.Parcelable

@extends java.lang.Object

 This class represents the capabilities of a network.  This is used both to specify
 needs to {@link android.net.ConnectivityManager} and when inspecting a network.

 Note that this replaces the old {@link android.net.ConnectivityManager#TYPE_MOBILE} method
 of network selection.  Rather than indicate a need for Wi-Fi because an application
 needs high bandwidth and risk obsolescence when a new, fast network appears (like LTE),
 the application should specify it needs high bandwidth.  Similarly if an application
 needs an unmetered network for a bulk transfer it can specify that rather than assuming
 all cellular based connections are metered and all Wi-Fi based connections are not.
*/
var NetworkCapabilities = {

/** Indicates this is a network that has the ability to reach the
 carrier's MMSC for sending and receiving MMS messages.
*/
NET_CAPABILITY_MMS : "0",
/** Indicates this is a network that has the ability to reach the carrier's
 SUPL server, used to retrieve GPS information.
*/
NET_CAPABILITY_SUPL : "1",
/** Indicates this is a network that has the ability to reach the carrier's
 DUN or tethering gateway.
*/
NET_CAPABILITY_DUN : "2",
/** Indicates this is a network that has the ability to reach the carrier's
 FOTA portal, used for over the air updates.
*/
NET_CAPABILITY_FOTA : "3",
/** Indicates this is a network that has the ability to reach the carrier's
 IMS servers, used for network registration and signaling.
*/
NET_CAPABILITY_IMS : "4",
/** Indicates this is a network that has the ability to reach the carrier's
 CBS servers, used for carrier specific services.
*/
NET_CAPABILITY_CBS : "5",
/** Indicates this is a network that has the ability to reach a Wi-Fi direct
 peer.
*/
NET_CAPABILITY_WIFI_P2P : "6",
/** Indicates this is a network that has the ability to reach a carrier's
 Initial Attach servers.
*/
NET_CAPABILITY_IA : "7",
/** Indicates this is a network that has the ability to reach a carrier's
 RCS servers, used for Rich Communication Services.
*/
NET_CAPABILITY_RCS : "8",
/** Indicates this is a network that has the ability to reach a carrier's
 XCAP servers, used for configuration and control.
*/
NET_CAPABILITY_XCAP : "9",
/** Indicates this is a network that has the ability to reach a carrier's
 Emergency IMS servers or other services, used for network signaling
 during emergency calls.
*/
NET_CAPABILITY_EIMS : "10",
/** Indicates that this network is unmetered.
*/
NET_CAPABILITY_NOT_METERED : "11",
/** Indicates that this network should be able to reach the internet.
*/
NET_CAPABILITY_INTERNET : "12",
/** Indicates that this network is available for general use.  If this is not set
 applications should not attempt to communicate on this network.  Note that this
 is simply informative and not enforcement - enforcement is handled via other means.
 Set by default.
*/
NET_CAPABILITY_NOT_RESTRICTED : "13",
/** Indicates that the user has indicated implicit trust of this network.  This
 generally means it's a sim-selected carrier, a plugged in ethernet, a paired
 BT device or a wifi the user asked to connect to.  Untrusted networks
 are probably limited to unknown wifi AP.  Set by default.
*/
NET_CAPABILITY_TRUSTED : "14",
/** Indicates that this network is not a VPN.  This capability is set by default and should be
 explicitly cleared for VPN networks.
*/
NET_CAPABILITY_NOT_VPN : "15",
/** Indicates that connectivity on this network was successfully validated. For example, for a
 network with NET_CAPABILITY_INTERNET, it means that Internet connectivity was successfully
 detected.
*/
NET_CAPABILITY_VALIDATED : "16",
/** Indicates that this network was found to have a captive portal in place last time it was
 probed.
*/
NET_CAPABILITY_CAPTIVE_PORTAL : "17",
/** Indicates this network uses a Cellular transport.
*/
TRANSPORT_CELLULAR : "0",
/** Indicates this network uses a Wi-Fi transport.
*/
TRANSPORT_WIFI : "1",
/** Indicates this network uses a Bluetooth transport.
*/
TRANSPORT_BLUETOOTH : "2",
/** Indicates this network uses an Ethernet transport.
*/
TRANSPORT_ETHERNET : "3",
/** Indicates this network uses a VPN transport.
*/
TRANSPORT_VPN : "4",
/***/
CREATOR : "null",
/**Completely clears the contents of this object, removing even the capabilities that are set
 by default when the object is constructed.
@hide 
*/
clearAll : function(  ) {},

/**Adds the given capability to this {@code NetworkCapability} instance.
 Multiple capabilities may be applied sequentially.  Note that when searching
 for a network to satisfy a request, all capabilities requested must be satisfied.
@param {Number} capability the {@code NetworkCapabilities.NET_CAPABILITY_*} to be added.
@return {Object {android.net.NetworkCapabilities}} This NetworkCapability to facilitate chaining.
@hide 
*/
addCapability : function(  ) {},

/**Removes (if found) the given capability from this {@code NetworkCapability} instance.
@param {Number} capability the {@code NetworkCapabilities.NET_CAPABILTIY_*} to be removed.
@return {Object {android.net.NetworkCapabilities}} This NetworkCapability to facilitate chaining.
@hide 
*/
removeCapability : function(  ) {},

/**Gets all the capabilities set on this {@code NetworkCapability} instance.
@return {Number} an array of {@code NetworkCapabilities.NET_CAPABILITY_*} values
         for this instance.
@hide 
*/
getCapabilities : function(  ) {},

/**Tests for the presence of a capabilitity on this instance.
@param {Number} capability the {@code NetworkCapabilities.NET_CAPABILITY_*} to be tested for.
@return {Boolean} {@code true} if set on this instance.
*/
hasCapability : function(  ) {},

/**
@hide 
*/
equalsNetCapabilities : function(  ) {},

/**Removes the NET_CAPABILITY_NOT_RESTRICTED capability if all the capabilities it provides are
 typically provided by restricted networks.

 TODO: consider:
 - Renaming it to guessRestrictedCapability and make it set the
   restricted capability bit in addition to clearing it.
@hide 
*/
maybeMarkCapabilitiesRestricted : function(  ) {},

/**Adds the given transport type to this {@code NetworkCapability} instance.
 Multiple transports may be applied sequentially.  Note that when searching
 for a network to satisfy a request, any listed in the request will satisfy the request.
 For example {@code TRANSPORT_WIFI} and {@code TRANSPORT_ETHERNET} added to a
 {@code NetworkCapabilities} would cause either a Wi-Fi network or an Ethernet network
 to be selected.  This is logically different than
 {@code NetworkCapabilities.NET_CAPABILITY_*} listed above.
@param {Number} transportType the {@code NetworkCapabilities.TRANSPORT_*} to be added.
@return {Object {android.net.NetworkCapabilities}} This NetworkCapability to facilitate chaining.
@hide 
*/
addTransportType : function(  ) {},

/**Removes (if found) the given transport from this {@code NetworkCapability} instance.
@param {Number} transportType the {@code NetworkCapabilities.TRANSPORT_*} to be removed.
@return {Object {android.net.NetworkCapabilities}} This NetworkCapability to facilitate chaining.
@hide 
*/
removeTransportType : function(  ) {},

/**Gets all the transports set on this {@code NetworkCapability} instance.
@return {Number} an array of {@code NetworkCapabilities.TRANSPORT_*} values
         for this instance.
@hide 
*/
getTransportTypes : function(  ) {},

/**Tests for the presence of a transport on this instance.
@param {Number} transportType the {@code NetworkCapabilities.TRANSPORT_*} to be tested for.
@return {Boolean} {@code true} if set on this instance.
*/
hasTransport : function(  ) {},

/**
@hide 
*/
equalsTransportTypes : function(  ) {},

/**Sets the upstream bandwidth for this network in Kbps.  This always only refers to
 the estimated first hop transport bandwidth.
 <p>
 Note that when used to request a network, this specifies the minimum acceptable.
 When received as the state of an existing network this specifies the typical
 first hop bandwidth expected.  This is never measured, but rather is inferred
 from technology type and other link parameters.  It could be used to differentiate
 between very slow 1xRTT cellular links and other faster networks or even between
 802.11b vs 802.11AC wifi technologies.  It should not be used to differentiate between
 fast backhauls and slow backhauls.
@param {Number} upKbps the estimated first hop upstream (device to network) bandwidth.
@hide 
*/
setLinkUpstreamBandwidthKbps : function(  ) {},

/**Retrieves the upstream bandwidth for this network in Kbps.  This always only refers to
 the estimated first hop transport bandwidth.
@return {Number} The estimated first hop upstream (device to network) bandwidth.
*/
getLinkUpstreamBandwidthKbps : function(  ) {},

/**Sets the downstream bandwidth for this network in Kbps.  This always only refers to
 the estimated first hop transport bandwidth.
 <p>
 Note that when used to request a network, this specifies the minimum acceptable.
 When received as the state of an existing network this specifies the typical
 first hop bandwidth expected.  This is never measured, but rather is inferred
 from technology type and other link parameters.  It could be used to differentiate
 between very slow 1xRTT cellular links and other faster networks or even between
 802.11b vs 802.11AC wifi technologies.  It should not be used to differentiate between
 fast backhauls and slow backhauls.
@param {Number} downKbps the estimated first hop downstream (network to device) bandwidth.
@hide 
*/
setLinkDownstreamBandwidthKbps : function(  ) {},

/**Retrieves the downstream bandwidth for this network in Kbps.  This always only refers to
 the estimated first hop transport bandwidth.
@return {Number} The estimated first hop downstream (network to device) bandwidth.
*/
getLinkDownstreamBandwidthKbps : function(  ) {},

/**Sets the optional bearer specific network specifier.
 This has no meaning if a single transport is also not specified, so calling
 this without a single transport set will generate an exception, as will
 subsequently adding or removing transports after this is set.
 </p>
 The interpretation of this {@code String} is bearer specific and bearers that use
 it should document their particulars.  For example, Bluetooth may use some sort of
 device id while WiFi could used SSID and/or BSSID.  Cellular may use carrier SPN (name)
 or Subscription ID.
@param {String} networkSpecifier An {@code String} of opaque format used to specify the bearer
                         specific network specifier where the bearer has a choice of
                         networks.
@hide 
*/
setNetworkSpecifier : function(  ) {},

/**Gets the optional bearer specific network specifier.
@return {String} The optional {@code String} specifying the bearer specific network specifier.
         See {@link #setNetworkSpecifier}.
@hide 
*/
getNetworkSpecifier : function(  ) {},

/**Combine a set of Capabilities to this one.  Useful for coming up with the complete set
 {@hide}
*/
combineCapabilities : function(  ) {},

/**Check if our requirements are satisfied by the given Capabilities.
 {@hide}
*/
satisfiedByNetworkCapabilities : function(  ) {},

/**
*/
equals : function(  ) {},

/**
*/
hashCode : function(  ) {},

/**
*/
describeContents : function(  ) {},

/**
*/
writeToParcel : function(  ) {},

/**
*/
toString : function(  ) {},


};