/**@class android.bluetooth.BluetoothHealth
 implements android.bluetooth.BluetoothProfile

@extends java.lang.Object

 Public API for Bluetooth Health Profile.

 <p>BluetoothHealth is a proxy object for controlling the Bluetooth
 Service via IPC.

 <p> How to connect to a health device which is acting in the source role.
 <li> Use {@link android.bluetooth.BluetoothAdapter#getProfileProxy} to get
 the BluetoothHealth proxy object. </li>
 <li> Create an {@link android.bluetooth.BluetoothHealth} callback and call
 {@link #registerSinkAppConfiguration} to register an application
 configuration </li>
 <li> Pair with the remote device. This currently needs to be done manually
 from Bluetooth Settings </li>
 <li> Connect to a health device using {@link #connectChannelToSource}. Some
 devices will connect the channel automatically. The {@link android.bluetooth.BluetoothHealth}
 callback will inform the application of channel state change. </li>
 <li> Use the file descriptor provided with a connected channel to read and
 write data to the health channel. </li>
 <li> The received data needs to be interpreted using a health manager which
 implements the IEEE 11073-xxxxx specifications.
 <li> When done, close the health channel by calling {@link #disconnectChannel}
 and unregister the application configuration calling
 {@link #unregisterAppConfiguration}

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New apps
 should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
var BluetoothHealth = {

/** Health Profile Source Role - the health device.

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
SOURCE_ROLE : "1",
/** Health Profile Sink Role the device talking to the health device.

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
SINK_ROLE : "2",
/** Health Profile - Channel Type used - Reliable

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
CHANNEL_TYPE_RELIABLE : "10",
/** Health Profile - Channel Type used - Streaming

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
CHANNEL_TYPE_STREAMING : "11",
/**Health Channel Connection State - Disconnected

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
STATE_CHANNEL_DISCONNECTED : "0",
/**Health Channel Connection State - Connecting

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
STATE_CHANNEL_CONNECTING : "1",
/**Health Channel Connection State - Connected

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
STATE_CHANNEL_CONNECTED : "2",
/**Health Channel Connection State - Disconnecting

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
STATE_CHANNEL_DISCONNECTING : "3",
/**Health App Configuration registration success

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
APP_CONFIG_REGISTRATION_SUCCESS : "0",
/**Health App Configuration registration failure

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
APP_CONFIG_REGISTRATION_FAILURE : "1",
/**Health App Configuration un-registration success

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
APP_CONFIG_UNREGISTRATION_SUCCESS : "2",
/**Health App Configuration un-registration failure

 @deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link android.bluetooth.BluetoothGatt},
 {@link android.bluetooth.BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link android.bluetooth.BluetoothDevice#createL2capChannel(int)}
*/
APP_CONFIG_UNREGISTRATION_FAILURE : "3",
/**Register an application configuration that acts as a Health SINK.
 This is the configuration that will be used to communicate with health devices
 which will act as the {@link #SOURCE_ROLE}. This is an asynchronous call and so
 the callback is used to notify success or failure if the function returns true.

 <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
@param {String} name The friendly name associated with the application or configuration.
@param {Number} dataType The dataType of the Source role of Health Profile to which the sink wants to
 connect to.
@param {Object {BluetoothHealthCallback}} callback A callback to indicate success or failure of the registration and all
 operations done on this application configuration.
@return {Boolean} If true, callback will be called.
@deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link BluetoothGatt},
 {@link BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link BluetoothDevice#createL2capChannel(int)}
*/
registerSinkAppConfiguration : function(  ) {},

/**Unregister an application configuration that has been registered using
 {@link #registerSinkAppConfiguration}

 <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
@param {Object {BluetoothHealthAppConfiguration}} config The health app configuration
@return {Boolean} Success or failure.
@deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link BluetoothGatt},
 {@link BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link BluetoothDevice#createL2capChannel(int)}
*/
unregisterAppConfiguration : function(  ) {},

/**Connect to a health device which has the {@link #SOURCE_ROLE}.
 This is an asynchronous call. If this function returns true, the callback
 associated with the application configuration will be called.

 <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
@param {Object {BluetoothDevice}} device The remote Bluetooth device.
@param {Object {BluetoothHealthAppConfiguration}} config The application configuration which has been registered using {@link
 #registerSinkAppConfiguration(String, int, BluetoothHealthCallback) }
@return {Boolean} If true, the callback associated with the application config will be called.
@deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link BluetoothGatt},
 {@link BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link BluetoothDevice#createL2capChannel(int)}
*/
connectChannelToSource : function(  ) {},

/**Disconnect a connected health channel.
 This is an asynchronous call. If this function returns true, the callback
 associated with the application configuration will be called.

 <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
@param {Object {BluetoothDevice}} device The remote Bluetooth device.
@param {Object {BluetoothHealthAppConfiguration}} config The application configuration which has been registered using {@link
 #registerSinkAppConfiguration(String, int, BluetoothHealthCallback) }
@param {Number} channelId The channel id associated with the channel
@return {Boolean} If true, the callback associated with the application config will be called.
@deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link BluetoothGatt},
 {@link BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link BluetoothDevice#createL2capChannel(int)}
*/
disconnectChannel : function(  ) {},

/**Get the file descriptor of the main channel associated with the remote device
 and application configuration.

 <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.

 <p> Its the responsibility of the caller to close the ParcelFileDescriptor
 when done.
@param {Object {BluetoothDevice}} device The remote Bluetooth health device
@param {Object {BluetoothHealthAppConfiguration}} config The application configuration
@return {Object {android.os.ParcelFileDescriptor}} null on failure, ParcelFileDescriptor on success.
@deprecated Health Device Profile (HDP) and MCAP protocol are no longer used. New
 apps should use Bluetooth Low Energy based solutions such as {@link BluetoothGatt},
 {@link BluetoothAdapter#listenUsingL2capChannel()(int)}, or
 {@link BluetoothDevice#createL2capChannel(int)}
*/
getMainChannelFd : function(  ) {},

/**Get the current connection state of the profile.

 <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.

 This is not specific to any application configuration but represents the connection
 state of the local Bluetooth adapter with the remote device. This can be used
 by applications like status bar which would just like to know the state of the
 local adapter.
@param {Object {BluetoothDevice}} device Remote bluetooth device.
@return {Number} State of the profile connection. One of {@link #STATE_CONNECTED}, {@link
 #STATE_CONNECTING}, {@link #STATE_DISCONNECTED}, {@link #STATE_DISCONNECTING}
*/
getConnectionState : function(  ) {},

/**Get connected devices for the health profile.

 <p> Return the set of devices which are in state {@link #STATE_CONNECTED}

 <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.

 This is not specific to any application configuration but represents the connection
 state of the local Bluetooth adapter for this profile. This can be used
 by applications like status bar which would just like to know the state of the
 local adapter.
@return {Object {java.util.List}} List of devices. The list will be empty on error.
*/
getConnectedDevices : function(  ) {},

/**Get a list of devices that match any of the given connection
 states.

 <p> If none of the devices match any of the given states,
 an empty list will be returned.

 <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
 This is not specific to any application configuration but represents the connection
 state of the local Bluetooth adapter for this profile. This can be used
 by applications like status bar which would just like to know the state of the
 local adapter.
@param {Object {int[]}} states Array of states. States can be one of {@link #STATE_CONNECTED}, {@link
 #STATE_CONNECTING}, {@link #STATE_DISCONNECTED}, {@link #STATE_DISCONNECTING},
@return {Object {java.util.List}} List of devices. The list will be empty on error.
*/
getDevicesMatchingConnectionStates : function(  ) {},


};