/**@class android.bluetooth.BluetoothGattCharacteristic
 implements android.os.Parcelable

@extends java.lang.Object

 Represents a Bluetooth GATT Characteristic

 <p>A GATT characteristic is a basic data element used to construct a GATT service,
 {@link android.bluetooth.BluetoothGattService}. The characteristic contains a value as well as
 additional information and optional GATT descriptors, {@link android.bluetooth.BluetoothGattDescriptor}.
*/
var BluetoothGattCharacteristic = {

/** Characteristic proprty: Characteristic is broadcastable.
*/
PROPERTY_BROADCAST : "1",
/** Characteristic property: Characteristic is readable.
*/
PROPERTY_READ : "2",
/** Characteristic property: Characteristic can be written without response.
*/
PROPERTY_WRITE_NO_RESPONSE : "4",
/** Characteristic property: Characteristic can be written.
*/
PROPERTY_WRITE : "8",
/** Characteristic property: Characteristic supports notification
*/
PROPERTY_NOTIFY : "16",
/** Characteristic property: Characteristic supports indication
*/
PROPERTY_INDICATE : "32",
/** Characteristic property: Characteristic supports write with signature
*/
PROPERTY_SIGNED_WRITE : "64",
/** Characteristic property: Characteristic has extended properties
*/
PROPERTY_EXTENDED_PROPS : "128",
/** Characteristic read permission
*/
PERMISSION_READ : "1",
/** Characteristic permission: Allow encrypted read operations
*/
PERMISSION_READ_ENCRYPTED : "2",
/** Characteristic permission: Allow reading with man-in-the-middle protection
*/
PERMISSION_READ_ENCRYPTED_MITM : "4",
/** Characteristic write permission
*/
PERMISSION_WRITE : "16",
/** Characteristic permission: Allow encrypted writes
*/
PERMISSION_WRITE_ENCRYPTED : "32",
/** Characteristic permission: Allow encrypted writes with man-in-the-middle
 protection
*/
PERMISSION_WRITE_ENCRYPTED_MITM : "64",
/** Characteristic permission: Allow signed write operations
*/
PERMISSION_WRITE_SIGNED : "128",
/** Characteristic permission: Allow signed write operations with
 man-in-the-middle protection
*/
PERMISSION_WRITE_SIGNED_MITM : "256",
/** Write characteristic, requesting acknoledgement by the remote device
*/
WRITE_TYPE_DEFAULT : "2",
/** Write characteristic without requiring a response by the remote device
*/
WRITE_TYPE_NO_RESPONSE : "1",
/** Write characteristic including authentication signature
*/
WRITE_TYPE_SIGNED : "4",
/** Characteristic value format type uint8
*/
FORMAT_UINT8 : "17",
/** Characteristic value format type uint16
*/
FORMAT_UINT16 : "18",
/** Characteristic value format type uint32
*/
FORMAT_UINT32 : "20",
/** Characteristic value format type sint8
*/
FORMAT_SINT8 : "33",
/** Characteristic value format type sint16
*/
FORMAT_SINT16 : "34",
/** Characteristic value format type sint32
*/
FORMAT_SINT32 : "36",
/** Characteristic value format type sfloat (16-bit float)
*/
FORMAT_SFLOAT : "50",
/** Characteristic value format type float (32-bit float)
*/
FORMAT_FLOAT : "52",
/***/
CREATOR : "null",
/**
*/
describeContents : function(  ) {},

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

/**Returns the desired key size.
@hide 
*/
getKeySize : function(  ) {},

/**Adds a descriptor to this characteristic.
 <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
@param {Object {BluetoothGattDescriptor}} descriptor Descriptor to be added to this characteristic.
@return {Boolean} true, if the descriptor was added to the characteristic
*/
addDescriptor : function(  ) {},

/**Returns the service this characteristic belongs to.
@return {Object {android.bluetooth.BluetoothGattService}} The asscociated service
*/
getService : function(  ) {},

/**Returns the UUID of this characteristic
@return {Object {java.util.UUID}} UUID of this characteristic
*/
getUuid : function(  ) {},

/**Returns the instance ID for this characteristic.

 <p>If a remote device offers multiple characteristics with the same UUID,
 the instance ID is used to distuinguish between characteristics.
@return {Number} Instance ID of this characteristic
*/
getInstanceId : function(  ) {},

/**Force the instance ID.
@hide 
*/
setInstanceId : function(  ) {},

/**Returns the properties of this characteristic.

 <p>The properties contain a bit mask of property flags indicating
 the features of this characteristic.
@return {Number} Properties of this characteristic
*/
getProperties : function(  ) {},

/**Returns the permissions for this characteristic.
@return {Number} Permissions of this characteristic
*/
getPermissions : function(  ) {},

/**Gets the write type for this characteristic.
@return {Number} Write type for this characteristic
*/
getWriteType : function(  ) {},

/**Set the write type for this characteristic

 <p>Setting the write type of a characteristic determines how the
 {@link android.bluetooth.BluetoothGatt#writeCharacteristic} function write this
 characteristic.
@param {Number} writeType The write type to for this characteristic. Can be one of: {@link
 #WRITE_TYPE_DEFAULT}, {@link #WRITE_TYPE_NO_RESPONSE} or {@link #WRITE_TYPE_SIGNED}.
*/
setWriteType : function(  ) {},

/**Set the desired key size.
@hide 
*/
setKeySize : function(  ) {},

/**Returns a list of descriptors for this characteristic.
@return {Object {java.util.List}} Descriptors for this characteristic
*/
getDescriptors : function(  ) {},

/**Returns a descriptor with a given UUID out of the list of
 descriptors for this characteristic.
@return {Object {android.bluetooth.BluetoothGattDescriptor}} GATT descriptor object or null if no descriptor with the given UUID was found.
*/
getDescriptor : function(  ) {},

/**Get the stored value for this characteristic.

 <p>This function returns the stored value for this characteristic as
 retrieved by calling {@link android.bluetooth.BluetoothGatt#readCharacteristic}. The cached
 value of the characteristic is updated as a result of a read characteristic
 operation or if a characteristic update notification has been received.
@return {Number} Cached value of the characteristic
*/
getValue : function(  ) {},

/**Return the stored value of this characteristic.

 <p>The formatType parameter determines how the characteristic value
 is to be interpreted. For example, settting formatType to
 {@link #FORMAT_UINT16} specifies that the first two bytes of the
 characteristic value at the given offset are interpreted to generate the
 return value.
@param {Number} formatType The format type used to interpret the characteristic value.
@param {Number} offset Offset at which the integer value can be found.
@return {Number} Cached value of the characteristic or null of offset exceeds value size.
*/
getIntValue : function(  ) {},

/**Return the stored value of this characteristic.
 <p>See {@link #getValue} for details.
@param {Number} formatType The format type used to interpret the characteristic value.
@param {Number} offset Offset at which the float value can be found.
@return {Number} Cached value of the characteristic at a given offset or null if the requested offset
 exceeds the value size.
*/
getFloatValue : function(  ) {},

/**Return the stored value of this characteristic.
 <p>See {@link #getValue} for details.
@param {Number} offset Offset at which the string value can be found.
@return {String} Cached value of the characteristic
*/
getStringValue : function(  ) {},

/**Updates the locally stored value of this characteristic.

 <p>This function modifies the locally stored cached value of this
 characteristic. To send the value to the remote device, call
 {@link android.bluetooth.BluetoothGatt#writeCharacteristic} to send the value to the
 remote device.
@param {Object {byte[]}} value New value for this characteristic
@return {Boolean} true if the locally stored value has been set, false if the requested value could not
 be stored locally.
*/
setValue : function(  ) {},

/**Set the locally stored value of this characteristic.
 <p>See {@link #setValue(byte[])} for details.
@param {Number} value New value for this characteristic
@param {Number} formatType Integer format type used to transform the value parameter
@param {Number} offset Offset at which the value should be placed
@return {Boolean} true if the locally stored value has been set
*/
setValue : function(  ) {},

/**Set the locally stored value of this characteristic.
 <p>See {@link #setValue(byte[])} for details.
@param {Number} mantissa Mantissa for this characteristic
@param {Number} exponent exponent value for this characteristic
@param {Number} formatType Float format type used to transform the value parameter
@param {Number} offset Offset at which the value should be placed
@return {Boolean} true if the locally stored value has been set
*/
setValue : function(  ) {},

/**Set the locally stored value of this characteristic.
 <p>See {@link #setValue(byte[])} for details.
@param {String} value New value for this characteristic
@return {Boolean} true if the locally stored value has been set
*/
setValue : function(  ) {},


};