UNPKG

@constructorfleet/ultimate-govee

Version:

Library for interacting with Govee devices written in Typescript.

162 lines 9.09 kB
/// <reference types="node" /> /// <reference types="node" /> import { type EventEmitter } from 'events'; import { DeviceId } from '../../common'; import { Subject } from 'rxjs'; export declare const BleModuleOptionsKey: string; export type BleService = { uuid: string; name: string; type: string; includedServiceUuids: string[]; characteristics: BleCharacteristic[]; discoverIncludedServices(): void; discoverIncludedServicesAsync(): Promise<string[]>; discoverIncludedServices(serviceUUIDs: string[], callback?: (error: string, includedServiceUuids: string[]) => void): void; discoverIncludedServicesAsync(serviceUUIDs: string[]): Promise<string[]>; discoverCharacteristics(): void; discoverCharacteristicsAsync(): Promise<BleCharacteristic[]>; discoverCharacteristics(characteristicUUIDs: string[], callback?: (error: string, characteristics: BleCharacteristic[]) => void): void; discoverCharacteristicsAsync(characteristicUUIDs: string[]): Promise<BleCharacteristic[]>; toString(): string; on(event: 'includedServicesDiscover', listener: (includedServiceUuids: string[]) => void): BleService; on(event: 'characteristicsDiscover', listener: (characteristics: BleCharacteristic[]) => void): BleService; on(event: string, listener: (...args: any[]) => void): BleService; once(event: 'includedServicesDiscover', listener: (includedServiceUuids: string[]) => void): BleService; once(event: 'characteristicsDiscover', listener: (characteristics: BleCharacteristic[]) => void): BleService; once(event: string, listener: (...args: any[]) => void): BleService; }; export type BleCharacteristic = { uuid: string; name: string; type: string; properties: string[]; descriptors: BleDescriptor[]; read(callback?: (error: string, data: Buffer) => void): void; readAsync(): Promise<Buffer>; write(data: Buffer, withoutResponse: boolean, callback?: (error: string) => void): void; writeAsync(data: Buffer, withoutResponse: boolean): Promise<void>; broadcast(broadcast: boolean, callback?: (error: string) => void): void; broadcastAsync(broadcast: boolean): Promise<void>; notify(notify: boolean, callback?: (error: string) => void): void; notifyAsync(notify: boolean): Promise<void>; discoverDescriptors(callback?: (error: string, descriptors: BleDescriptor[]) => void): void; discoverDescriptorsAsync(): Promise<BleDescriptor[]>; toString(): string; subscribe(callback?: (error: string) => void): void; subscribeAsync(): Promise<void>; unsubscribe(callback?: (error: string) => void): void; unsubscribeAsync(): Promise<void>; on(event: 'read', listener: (data: Buffer, isNotification: boolean) => void): BleCharacteristic; on(event: 'write', withoutResponse: boolean, listener: (error: string) => void): BleCharacteristic; on(event: 'broadcast', listener: (state: string) => void): BleCharacteristic; on(event: 'notify', listener: (state: string) => void): BleCharacteristic; on(event: 'data', listener: (data: Buffer, isNotification: boolean) => void): BleCharacteristic; on(event: 'descriptorsDiscover', listener: (descriptors: BleDescriptor[]) => void): BleCharacteristic; on(event: string, listener: (...args: any[]) => void): BleCharacteristic; on(event: string, option: boolean, listener: (...args: any[]) => void): BleCharacteristic; once(event: 'read', listener: (data: Buffer, isNotification: boolean) => void): BleCharacteristic; once(event: 'write', withoutResponse: boolean, listener: (error: string) => void): BleCharacteristic; once(event: 'broadcast', listener: (state: string) => void): BleCharacteristic; once(event: 'notify', listener: (state: string) => void): BleCharacteristic; once(event: 'data', listener: (data: Buffer, isNotification: boolean) => void): BleCharacteristic; once(event: 'descriptorsDiscover', listener: (descriptors: BleDescriptor[]) => void): BleCharacteristic; once(event: string, listener: (...args: any[]) => void): BleCharacteristic; once(event: string, option: boolean, listener: (...args: any[]) => void): BleCharacteristic; }; export type BleDescriptor = { uuid: string; name: string; type: string; readValue(callback?: (error: string, data: Buffer) => void): void; readValueAsync(): Promise<Buffer>; writeValue(data: Buffer, callback?: (error: string) => void): void; writeValueAsync(data: Buffer): Promise<void>; toString(): string; on(event: 'valueRead', listener: (error: string, data: Buffer) => void): BleDescriptor; on(event: 'valueWrite', listener: (error: string) => void): BleDescriptor; on(event: string, listener: (...args: any[]) => void): BleDescriptor; once(event: 'valueRead', listener: (error: string, data: Buffer) => void): BleDescriptor; once(event: 'valueWrite', listener: (error: string) => void): BleDescriptor; once(event: string, listener: (...args: any[]) => void): BleDescriptor; }; export type BlePeripheral = { id: string; uuid: string; address: string; addressType: string; connectable: boolean; advertisement: BleAdvertisement; rssi: number; mtu: number | null; services: BleService[]; state: 'error' | 'connecting' | 'connected' | 'disconnecting' | 'disconnected'; connect(callback?: (error: string) => void): void; connectAsync(): Promise<void>; disconnect(callback?: () => void): void; disconnectAsync(): Promise<void>; updateRssi(callback?: (error: string, rssi: number) => void): void; updateRssiAsync(): Promise<number>; discoverServices(): void; discoverServicesAsync(): Promise<BleService[]>; discoverServices(serviceUUIDs: string[], callback?: (error: string, services: BleService[]) => void): void; discoverServicesAsync(serviceUUIDs: string[]): Promise<BleService[]>; discoverAllServicesAndCharacteristics(callback?: (error: string, services: BleService[], characteristics: BleCharacteristic[]) => void): void; discoverAllServicesAndCharacteristicsAsync(): Promise<BleServicesAndCharacteristics>; discoverSomeServicesAndCharacteristics(serviceUUIDs: string[], characteristicUUIDs: string[], callback?: (error: string, services: BleService[], characteristics: BleCharacteristic[]) => void): void; discoverSomeServicesAndCharacteristicsAsync(serviceUUIDs: string[], characteristicUUIDs: string[]): Promise<BleServicesAndCharacteristics>; cancelConnect(options?: object): void; readHandle(handle: number, callback: (error: string, data: Buffer) => void): void; readHandleAsync(handle: number): Promise<Buffer>; writeHandle(handle: number, data: Buffer, withoutResponse: boolean, callback: (error: string) => void): void; writeHandleAsync(handle: number, data: Buffer, withoutResponse: boolean): Promise<void>; toString(): string; on(event: 'connect', listener: (error: string) => void): BlePeripheral; on(event: 'disconnect', listener: (error: string) => void): BlePeripheral; on(event: 'rssiUpdate', listener: (rssi: number) => void): BlePeripheral; on(event: 'servicesDiscover', listener: (services: BleService[]) => void): BlePeripheral; on(event: string, listener: (...args: any[]) => void): BlePeripheral; once(event: 'connect', listener: (error: string) => void): BlePeripheral; once(event: 'disconnect', listener: (error: string) => void): BlePeripheral; once(event: 'rssiUpdate', listener: (rssi: number) => void): BlePeripheral; once(event: 'servicesDiscover', listener: (services: BleService[]) => void): BlePeripheral; once(event: string, listener: (...args: any[]) => void): BlePeripheral; }; export type BleServicesAndCharacteristics = { services: BleService[]; characteristics: BleCharacteristic[]; }; export type BleAdvertisement = { localName: string; serviceData: Array<{ uuid: string; data: Buffer; }>; txPowerLevel: number; manufacturerData: Buffer; serviceUuids: string[]; }; type NobleEvent = 'stateChange' | 'scanStart' | 'scanStop' | 'discover' | 'warning'; export type NobleBle = { startScanning(serviceUUIDs?: string[], allowDuplicates?: boolean, callback?: (error?: Error) => void): void; startScanningAsync(serviceUUIDs?: string[], allowDuplicates?: boolean): Promise<void>; stopScanning(callback?: () => void): void; stopScanningAsync(): Promise<void>; cancelConnect(peripheralUuid: string, options?: object): void; reset(): void; on(event: NobleEvent, listener: (...args: any[]) => void): EventEmitter; once(event: NobleEvent, listener: (...args: any[]) => void): EventEmitter; removeListener(NobleEvent: string, listener: (...args: any[]) => void): EventEmitter; removeAllListeners(event?: string): EventEmitter; _state: string; }; export type BleCommand = { commandId: string; id: DeviceId; address: string; commands: number[][]; results$: Subject<number[]>; debug?: boolean; }; export {}; //# sourceMappingURL=ble.types.d.ts.map