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

The Cycling Power Vector characteristic is a variable length structure containing a Flags fieldand based on the contents of the Flags field, may contain one or more additional fields as shown in the table below.

*/ export interface CyclingPowerVector { /** *

Format: `uint16`

*

Unit: `org.bluetooth.unit.unitless`

*/ crankRevolutionDataCumulativeCrankRevolutions?: number | undefined; /** *

Format: `uint16`

*

Unit: `org.bluetooth.unit.time.second`

*/ crankRevolutionDataLastCrankEventTime?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ crankRevolutionDataPresent: number; /** *

When observed with the front wheel to the right of the pedals, a value of 0 degrees represents the angle when the crank is in the 12 o'clock position and a value of 90 degrees represents the angle, measured clockwise, when the crank points towards the front wheel in a 3 o'clock position. The left crank sensor (if fitted) detects the 0? when the crank it is attached to is in the 12 o'clock position and the right sensor (if fitted) detects the 0? when the crank it is attached to is in its 12 o'clock position; thus, there is a constant 180? difference between the right crank and the left crank position signals.

*

Format: `uint16`

*

Unit: `org.bluetooth.unit.plane_angle.degree`

*

Unit is in degrees with a resolution of 1.

*/ firstCrankMeasurementAngle?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ firstCrankMeasurementAnglePresent: number; /** *

Format: `8bit`

* * Bit field: * * | index | size | name | * | ----- | ---- | -------------------------------------------- | * | 0 | 1 | Crank Revolution Data Present | * | 1 | 1 | First Crank Measurement Angle Present | * | 2 | 1 | Instantaneous Force Magnitude Array Present | * | 3 | 1 | Instantaneous Torque Magnitude Array Present | * | 4 | 2 | Instantaneous Measurement Direction | * | 6 | 2 | Reserved for future use | * */ flags: number; /** *

Format: `sint16`

*

Unit: `org.bluetooth.unit.force.newton`

*/ instantaneousForceMagnitudeArray?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ instantaneousForceMagnitudeArrayPresent: number; /** * | value | description | * | ----- | -------------------- | * | 0 | Unknown | * | 1 | Tangential Component | * | 2 | Radial Component | * | 3 | Lateral Component | */ instantaneousMeasurementDirection: number; /** *

Format: `sint16`

*

Unit: `org.bluetooth.unit.moment_of_force.newton_metre`

*/ instantaneousTorqueMagnitudeArray?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ instantaneousTorqueMagnitudeArrayPresent: number; } /** * The fields in the above table, reading from top to bottom, are shown in the order of LSO to MSO, where LSO = Least Significant Octet and MSO = Most Significant Octet. The Least Significant Octet represents the eight bits numbered 0 to 7. * @see {@link https://raw.githubusercontent.com/oesmith/gatt-xml/refs/heads/master/org.bluetooth.characteristic.cycling_power_vector.xml | Cycling Power Vector} */ export declare class CyclingPowerVectorImpl implements CyclingPowerVector { static readonly UUID_PREFIX = 10852; static readonly TYPE_NAME = "org.bluetooth.characteristic.cycling_power_vector"; static readonly NAME = "Cycling Power Vector"; /** Parse from a DataView into {@link CyclingPowerVector}. */ static fromDataView(dataView: DataView | DataViewReader, indexStart?: number | undefined): CyclingPowerVectorImpl; readonly crankRevolutionDataCumulativeCrankRevolutions?: number | undefined; readonly crankRevolutionDataLastCrankEventTime?: number | undefined; readonly crankRevolutionDataPresent: number; readonly firstCrankMeasurementAngle?: number | undefined; readonly firstCrankMeasurementAnglePresent: number; readonly flags: number; readonly instantaneousForceMagnitudeArray?: number | undefined; readonly instantaneousForceMagnitudeArrayPresent: number; readonly instantaneousMeasurementDirection: number; readonly instantaneousTorqueMagnitudeArray?: number | undefined; readonly instantaneousTorqueMagnitudeArrayPresent: number; constructor(cyclingPowerVector: CyclingPowerVector); } /** Parse from a DataView into {@link CyclingPowerVector}. */ export declare function cyclingPowerVectorFromDataView(dataView: DataView | DataViewReader, indexStart?: number): CyclingPowerVector; //# sourceMappingURL=cycling-power-vector.d.ts.map