import type { CharacteristicPath, GattDatabaseSnapshot } from '../backend-contract/gatt.js'; import type { BackendIdentity } from '../backend-contract/identity.js'; import type { PublicOperationOptions, SubscriptionOptions, WritePolicy, WriteReceipt } from '../backend-contract/operations.js'; import type { OwnedBytes, Uuid } from '../backend-contract/primitives.js'; import type { Connection, DiscoveredGattDatabase, Subscription } from '../manager/index.js'; type CurrentCharacteristicPath = CharacteristicPath; /** A duplicate-safe selector for an attribute in one discovered GATT database. */ export interface CharacteristicSelector { readonly serviceUuid: Uuid; readonly characteristicUuid: Uuid; readonly serviceOccurrence: string | null; readonly characteristicOccurrence: string | null; } export interface CharacteristicSelectorOptions { readonly serviceOccurrence?: string; readonly characteristicOccurrence?: string; } export declare function characteristicSelector(serviceUuid: Uuid, characteristicUuid: Uuid, options?: CharacteristicSelectorOptions): CharacteristicSelector; /** Thin public command for discovery; cancellation and deadlines stay with the public connection primitive. */ export declare function discoverGatt>(connection: Connection, options: PublicOperationOptions): Promise>; /** * Resolves one exact characteristic path from an ordered snapshot. UUID-only * lookup is intentionally rejected when an occurrence is duplicated. */ export declare function resolveCharacteristicPath(snapshot: GattDatabaseSnapshot, selector: CharacteristicSelector): Promise>; export declare function readCharacteristic>(database: DiscoveredGattDatabase, selector: CharacteristicSelector, options: PublicOperationOptions): Promise; export declare function writeCharacteristic>(database: DiscoveredGattDatabase, selector: CharacteristicSelector, value: Readonly, options: WritePolicy): Promise>; export declare function subscribeCharacteristic>(database: DiscoveredGattDatabase, selector: CharacteristicSelector, options: SubscriptionOptions): Promise>; export {}; //# sourceMappingURL=commands.d.ts.map