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

The SYSTEM ID characteristic consists of a structure with two fields. The first field are the LSOs and the second field contains the MSOs. This is a 64-bit structure which consists of a 40-bit manufacturer-defined identifier concatenated with a 24 bit unique Organizationally Unique Identifier (OUI). The OUI is issued by the IEEE Registration Authority (http://standards.ieee.org/regauth/index.html) and is required to be used in accordance with IEEE Standard 802-2001.6 while the least significant 40 bits are manufacturer defined.

*

If System ID generated based on a Bluetooth Device Address, it is required to be done as follows. System ID and the Bluetooth Device Address have a very similar structure: a Bluetooth Device Address is 48 bits in length and consists of a 24 bit Company Assigned Identifier (manufacturer defined identifier) concatenated with a 24 bit Company Identifier (OUI). In order to encapsulate a Bluetooth Device Address as System ID, the Company Identifier is concatenated with 0xFFFE followed by the Company Assigned Identifier of the Bluetooth Address. For more guidelines related to EUI-64, refer to http://standards.ieee.org/develop/regauth/tut/eui64.pdf.

*

If the system ID is based of a Bluetooth Device Address with a Company Identifier (OUI) is 0x123456 and the Company Assigned Identifier is 0x9ABCDE, then the System Identifier is required to be 0x123456FFFE9ABCDE.

*/ export interface SystemId { /** *

Format: `uint40`

*

Minimum: 0

*

Maximum: 1099511627775

*/ manufacturerIdentifier: number; /** *

Format: `uint24`

*

Minimum: 0

*

Maximum: 16777215

*/ organizationallyUniqueIdentifier: number; } /** @see {@link https://raw.githubusercontent.com/oesmith/gatt-xml/refs/heads/master/org.bluetooth.characteristic.system_id.xml | System Id} */ export declare class SystemIdImpl implements SystemId { static readonly UUID_PREFIX = 10787; static readonly TYPE_NAME = "org.bluetooth.characteristic.system_id"; static readonly NAME = "System ID"; /** Parse from a DataView into {@link SystemId}. */ static fromDataView(dataView: DataView | DataViewReader, indexStart?: number | undefined): SystemIdImpl; readonly manufacturerIdentifier: number; readonly organizationallyUniqueIdentifier: number; constructor(systemId: SystemId); } /** Parse from a DataView into {@link SystemId}. */ export declare function systemIdFromDataView(dataView: DataView | DataViewReader, indexStart?: number): SystemId; //# sourceMappingURL=system-id.d.ts.map