import { B as BaseProfile } from '../base-n3IBbs7i.mjs'; import '../error-taxonomy-CWrJx3aZ.mjs'; /** * Aggregated device information read from the Device Information Service. * * All fields are optional because a peripheral may not expose every * characteristic. Use {@link DeviceInfoProfile.readAll} to populate as * many fields as the device supports in a single call. */ interface DeviceInfo { /** Model number string (characteristic 0x2A24). */ modelNumber?: string; /** Serial number string (characteristic 0x2A25). */ serialNumber?: string; /** Firmware revision string (characteristic 0x2A26). */ firmwareRevision?: string; /** Hardware revision string (characteristic 0x2A27). */ hardwareRevision?: string; /** Software revision string (characteristic 0x2A28). */ softwareRevision?: string; /** Manufacturer name string (characteristic 0x2A29). */ manufacturerName?: string; /** Raw System ID value (characteristic 0x2A23) as a {@link DataView}. */ systemId?: DataView; } /** * BLE Device Information Service profile (UUID 0x180A). * * Reads standard device metadata characteristics such as model number, * manufacturer name, firmware revision, and more. String values are * decoded from raw bytes with {@link TextDecoder}. * * @example * ```ts * import { DeviceInfoProfile } from '@beacio/core/profiles'; * * const info = new DeviceInfoProfile(device); * await info.connect(); * * // Read individual fields * const manufacturer = await info.readManufacturerName(); * const model = await info.readModelNumber(); * console.log(`${manufacturer} ${model}`); * * // Or read all available fields at once * const all = await info.readAll(); * console.log(all); * // { modelNumber: 'Sensor-v2', manufacturerName: 'Acme', ... } * * info.stop(); * ``` */ declare class DeviceInfoProfile extends BaseProfile { protected readonly service = "device_information"; readModelNumber(): Promise; readSerialNumber(): Promise; readFirmwareRevision(): Promise; readHardwareRevision(): Promise; readSoftwareRevision(): Promise; readManufacturerName(): Promise; readSystemId(): Promise; /** Read all available device info fields. Missing fields return undefined. */ readAll(): Promise; private readString; } export { type DeviceInfo, DeviceInfoProfile };