import { NappletMessage, BleEvent, BleOpenResult, BleService, BleOpenRequest, BleAttribute, BleWriteOptions } from '@napplet/core'; export { BleApi, BleAttribute, BleCharacteristic, BleCharacteristicProperties, BleClosedEvent, BleDeviceFilter, BleDeviceInfo, BleEvent, BleManufacturerDataFilter, BleNotificationEvent, BleOpenRequest, BleOpenResult, BleService, BleServiceDataFilter, BleSession, BleSessionState, BleStateEvent, BleUuid, BleWriteOptions } from '@napplet/core'; /** * Napplet NAP ble types entrypoint. * * @module */ /** * @napplet/nap/ble -- Runtime-mediated BLE/GATT message types. * * NAP-BLE lets napplets work with user-approved BLE devices through opaque * runtime sessions. The runtime owns chooser UI, permission, backend handles, * GATT lifecycle, notification wiring, and policy. */ /** The NAP domain name for BLE messages. */ declare const DOMAIN: "ble"; /** Base interface for all BLE NAP messages. */ interface BleMessage extends NappletMessage { type: `ble.${string}`; } /** Request a runtime-owned BLE session. */ interface BleOpenMessage extends BleMessage { type: 'ble.open'; id: string; request: BleOpenRequest; } /** Result of `ble.open`. */ interface BleOpenResultMessage extends BleMessage { type: 'ble.open.result'; id: string; session?: BleOpenResult['session']; error?: string; } /** List exposed GATT services for a session. */ interface BleServicesMessage extends BleMessage { type: 'ble.services'; id: string; sessionId: string; } /** Result of `ble.services`. */ interface BleServicesResultMessage extends BleMessage { type: 'ble.services.result'; id: string; services?: BleService[]; error?: string; } /** Read a characteristic or descriptor value. */ interface BleReadMessage extends BleMessage { type: 'ble.read'; id: string; sessionId: string; target: BleAttribute; } /** Result of `ble.read`. */ interface BleReadResultMessage extends BleMessage { type: 'ble.read.result'; id: string; data?: number[]; error?: string; } /** Write bytes to a characteristic or descriptor. */ interface BleWriteMessage extends BleMessage { type: 'ble.write'; id: string; sessionId: string; target: BleAttribute; data: number[]; options?: BleWriteOptions; } /** Result of `ble.write`. */ interface BleWriteResultMessage extends BleMessage { type: 'ble.write.result'; id: string; error?: string; } /** Start notifications or indications for a characteristic. */ interface BleSubscribeMessage extends BleMessage { type: 'ble.subscribe'; id: string; sessionId: string; target: BleAttribute; } /** Result of `ble.subscribe`. */ interface BleSubscribeResultMessage extends BleMessage { type: 'ble.subscribe.result'; id: string; error?: string; } /** Stop notifications or indications for a characteristic. */ interface BleUnsubscribeMessage extends BleMessage { type: 'ble.unsubscribe'; id: string; sessionId: string; target: BleAttribute; } /** Result of `ble.unsubscribe`. */ interface BleUnsubscribeResultMessage extends BleMessage { type: 'ble.unsubscribe.result'; id: string; error?: string; } /** Close a BLE session. */ interface BleCloseMessage extends BleMessage { type: 'ble.close'; id: string; sessionId: string; reason?: string; } /** Result of `ble.close`. */ interface BleCloseResultMessage extends BleMessage { type: 'ble.close.result'; id: string; error?: string; } /** Runtime-pushed BLE event. */ interface BleEventMessage extends BleMessage { type: 'ble.event'; event: BleEvent; } /** Napplet -> runtime BLE messages. */ type BleOutboundMessage = BleOpenMessage | BleServicesMessage | BleReadMessage | BleWriteMessage | BleSubscribeMessage | BleUnsubscribeMessage | BleCloseMessage; /** Runtime -> napplet BLE messages. */ type BleInboundMessage = BleOpenResultMessage | BleServicesResultMessage | BleReadResultMessage | BleWriteResultMessage | BleSubscribeResultMessage | BleUnsubscribeResultMessage | BleCloseResultMessage | BleEventMessage; /** All BLE NAP message types. */ type BleNapMessage = BleOutboundMessage | BleInboundMessage; export { type BleCloseMessage, type BleCloseResultMessage, type BleEventMessage, type BleInboundMessage, type BleMessage, type BleNapMessage, type BleOpenMessage, type BleOpenResultMessage, type BleOutboundMessage, type BleReadMessage, type BleReadResultMessage, type BleServicesMessage, type BleServicesResultMessage, type BleSubscribeMessage, type BleSubscribeResultMessage, type BleUnsubscribeMessage, type BleUnsubscribeResultMessage, type BleWriteMessage, type BleWriteResultMessage, DOMAIN };