import { type DataViewReader } from "./data-view-reader.js"; /** *

The Characteristic Presentation Format descriptor defines the format of the Characteristic Value.

*

When encoding an IPv4 address, the uint32 Format type is used.

*

When encoding an IPv6 address, the uint128 Format type is used.

*

When encoding a Bluetooth address (BD_ADDR), the uint48 Format type is used.

*

For a Characteristic Value of 23 and an Exponent of 2, the actual value is 2300

*

For a Characteristi Value of 3892 and an Exponent of -3, the actual value is 3.892

*

One or more Characteristic Presentation Format descriptors may be present. If multiple of these descriptors are present, then a Aggregate Formate descriptor is present. This descriptor is read only and does not require authentication or authorization to read. This descriptor is composed of five parts: format, exponent, unit, name space and description. The Format field determines how a single value contained in the Characteristic Value is formatted. The Exponent field is used with interger data types to determine how the Characteristic Value is furhter formatted. The actual value = Characteristic Value * 10^Exponent.

*/ export interface GattCharacteristicPresentationFormat { /** *

Format: `16bit`

*

The Description is an enumerated value from the organization identified by the Name Space field.

*/ description: number; /**

Format: `sint8`

*/ exponent: number; /** *

Format: `8bit`

*

Minimum: 0

*

Maximum: 27

* | Key | Description | * | --- | ------------------------------ | * | 0 | Reserved For Future Use | * | 1 | Boolean | * | 2 | unsigned 2-bit integer | * | 3 | unsigned 4-bit integer | * | 4 | unsigned 8-bit integer | * | 5 | unsigned 12-bit integer | * | 6 | unsigned 16-bit integer | * | 7 | unsigned 24-bit integer | * | 8 | unsigned 32-bit integer | * | 9 | unsigned 48-bit integer | * | 10 | unsigned 64-bit integer | * | 11 | unsigned 128-bit integer | * | 12 | signed 8-bit integer | * | 13 | signed 12-bit integer | * | 14 | signed 16-bit integer | * | 15 | signed 24-bit integer | * | 16 | signed 32-bit integer | * | 17 | signed 48-bit integer | * | 18 | signed 64-bit integer | * | 19 | signed 128-bit integer | * | 20 | IEEE-754 32-bit floating point | * | 21 | IEEE-754 64-bit floating point | * | 22 | IEEE-11073 16-bit SFLOAT | * | 23 | IEEE-11073 32-bit FLOAT | * | 24 | IEEE-20601 format | * | 25 | UTF-8 string | * | 26 | UTF-16 string | * | 27 | Opaque Structure | * *

Reserved: 28 to 255

*/ format: number; /** *

Format: `8bit`

*

The Name Space field is used to indentify the organization that is responsible for defining the enumerations for the description field.

*

Minimum: 0

*

Maximum: 1

* | Key | Description | * | --- | ------------------------------ | * | 1 | Bluetooth SIG Assigned Numbers | * *

Reserved for future use: 2 to 255

*/ namespace: number; /** *

Format: `uint16`

*

The Unit is a UUID.

*/ unit: number; } /** @see {@link https://raw.githubusercontent.com/oesmith/gatt-xml/refs/heads/master/org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml | Gatt Characteristic Presentation Format} */ export declare class GattCharacteristicPresentationFormatImpl implements GattCharacteristicPresentationFormat { static readonly UUID_PREFIX = 10500; static readonly TYPE_NAME = "org.bluetooth.descriptor.gatt.characteristic_presentation_format"; static readonly NAME = "Characteristic Presentation Format"; /** Parse from a DataView into {@link GattCharacteristicPresentationFormat}. */ static fromDataView(dataView: DataView | DataViewReader, indexStart?: number | undefined): GattCharacteristicPresentationFormatImpl; readonly description: number; readonly exponent: number; readonly format: number; readonly namespace: number; readonly unit: number; constructor(gattCharacteristicPresentationFormat: GattCharacteristicPresentationFormat); } /** Parse from a DataView into {@link GattCharacteristicPresentationFormat}. */ export declare function gattCharacteristicPresentationFormatFromDataView(dataView: DataView | DataViewReader, indexStart?: number): GattCharacteristicPresentationFormat; //# sourceMappingURL=gatt-characteristic-presentation-format.d.ts.map