react-native-ble-manager
Version:
A BLE module for react native.
243 lines (242 loc) • 10.4 kB
TypeScript
import { TurboModule } from 'react-native';
import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes';
/**
* This represents the Turbo Module version of react-native-ble-manager.
* This adds the codegen definition to react-native generate the c++ bindings on compile time.
* That should work only on 0.75 and higher.
* Don't remove it! and please modify with caution! Knowing that can create wrong bindings into jsi and break at compile or execution time.
* - Knowing that also every type needs to match the current Objective C++ and Java callbacks types and callbacks type definitions and be aware of the current differences between implementation in both platforms.
*/
export interface Spec extends TurboModule {
start(options: Object, callback: (error: CallbackError) => void): void;
scan(serviceUUIDStrings: string[], timeoutSeconds: number, allowDuplicates: boolean, scanningOptions: Object, callback: (error: CallbackError) => void): void;
stopScan(callback: (error: CallbackError) => void): void;
connect(peripheralUUID: string, options: Object, callback: (error: CallbackError) => void): void;
disconnect(peripheralUUID: string, force: boolean, callback: (error: CallbackError) => void): void;
retrieveServices(peripheralUUID: string, services: string[], callback: (error: CallbackError, peripheral: PeripheralInfo) => void): void;
readRSSI(peripheralUUID: string, callback: (error: string | null, rssi: number) => void): void;
readDescriptor(peripheralUUID: string, serviceUUID: string, characteristicUUID: string, descriptorUUID: string, callback: (error: string | null, data: number[]) => void): void;
writeDescriptor(peripheralUUID: string, serviceUUID: string, characteristicUUID: string, descriptorUUID: string, data: object[], callback: (error: string | null) => void): void;
getDiscoveredPeripherals(callback: (error: string | null, result: Peripheral[] | null) => void): void;
checkState(callback: (state: BleState) => void): void;
write(peripheralUUID: string, serviceUUID: string, characteristicUUID: string, message: object[], maxByteSize: number, callback: (error: string | null) => void): void;
writeWithoutResponse(peripheralUUID: string, serviceUUID: string, characteristicUUID: string, message: object[], maxByteSize: number, queueSleepTime: number, callback: (error: string | null) => void): void;
read(peripheralUUID: string, serviceUUID: string, characteristicUUID: string, callback: (error: string | null, data: number[]) => void): void;
startNotificationWithBuffer(peripheralUUID: string, serviceUUID: string, characteristicUUID: string, bufferLength: number, callback: (error: string | null) => void): void;
startNotification(peripheralUUID: string, serviceUUID: string, characteristicUUID: string, callback: (error: string | null) => void): void;
stopNotification(peripheralUUID: string, serviceUUID: string, characteristicUUID: string, callback: (error: string | null) => void): void;
getConnectedPeripherals(serviceUUIDStrings: string[], callback: (error: string | null, result: Peripheral[] | null) => void): void;
isPeripheralConnected(peripheralUUID: string, callback: (error: Peripheral[]) => void): void;
isScanning(callback: (error: string | null, status: boolean) => void): void;
getMaximumWriteValueLengthForWithoutResponse(peripheralUUID: string, callback: (error: string | null, max: number) => void): void;
getMaximumWriteValueLengthForWithResponse(deviceUUID: string, callback: (error: string | null, max: number) => void): void;
enableBluetooth(callback: (error: string | null) => void): void;
getBondedPeripherals(callback: (error: string | null, result: Peripheral[] | null) => void): void;
createBond(peripheralUUID: string, devicePin: string, callback: (error: string | null) => void): void;
removeBond(peripheralUUID: string, callback: (error: string | null) => void): void;
removePeripheral(peripheralUUID: string, callback: (error: string | null) => void): void;
requestMTU(peripheralUUID: string, mtu: number, callback: (error: string | null, mtu: number) => void): void;
requestConnectionPriority(peripheralUUID: string, connectionPriority: number, callback: (error: string | null, status: boolean) => void): void;
refreshCache(peripheralUUID: string, callback: (error: string | null, result: boolean) => void): void;
setName(name: string): void;
getAssociatedPeripherals(callback: (error: string | null, peripherals: Peripheral[] | null) => void): void;
removeAssociatedPeripheral(peripheralUUID: string, callback: (error: string | null) => void): void;
supportsCompanion(callback: (supports: boolean) => void): void;
companionScan(serviceUUIDs: string[], option: Object, callback: (error: string | null, peripheral: Peripheral | null) => void): void;
/**
* Supported events.
*/
readonly onDiscoverPeripheral: EventEmitter<Peripheral>;
readonly onStopScan: EventEmitter<EventStopScan>;
readonly onDidUpdateState: EventEmitter<EventDidUpdateState>;
readonly onDidUpdateValueForCharacteristic: EventEmitter<EventDidUpdateValueForCharacteristic>;
readonly onConnectPeripheral: EventEmitter<EventConnectPeripheral>;
readonly onDisconnectPeripheral: EventEmitter<EventDisconnectPeripheral>;
readonly onPeripheralDidBond: EventEmitter<EventPeripheralDidBond>;
readonly onCentralManagerWillRestoreState: EventEmitter<EventCentralManagerWillRestoreState>;
readonly onDidUpdateNotificationStateFor: EventEmitter<EventDidUpdateNotificationStateFor>;
readonly onCompanionPeripheral: EventEmitter<EventCompanionPeripheral>;
readonly onCompanionFailure: EventEmitter<EventCompanionFailure>;
}
declare const _default: Spec;
export default _default;
/** Turbo Module Type Definitions */
export type BleScanCallbackType = number;
export type BleScanMatchCount = number;
export type BleScanMatchMode = number;
export type BleScanMode = number;
export type BleScanPhyMode = number;
export type CallbackError = string | null;
export type BleState = string;
export type Peripheral = {
id: string;
rssi: number;
name: string | null;
advertising: {
isConnectable?: boolean;
localName?: string | null;
rawData?: {
CDVType: number[];
bytes: number[];
data: string;
};
manufacturerData?: {
CDVType: number[];
bytes: number[];
data: string;
}[] | null;
manufacturerRawData?: {
CDVType: number[];
bytes: number[];
data: string;
} | null;
serviceData?: {
CDVType: number[];
bytes: number[];
data: string;
}[] | null;
serviceUUIDs?: string[];
txPowerLevel?: number;
};
};
export type PeripheralInfo = {
id: string;
rssi: number;
name: string | null;
advertising: {
isConnectable?: boolean;
localName?: string | null;
rawData?: {
CDVType: number[];
bytes: number[];
data: string;
} | null;
manufacturerData?: {
CDVType: number[];
bytes: number[];
data: string;
}[] | null;
manufacturerRawData?: {
CDVType: number[];
bytes: number[];
data: string;
} | null;
serviceData?: {
CDVType: number[];
bytes: number[];
data: string;
}[] | null;
serviceUUIDs?: string[];
txPowerLevel?: number;
};
serviceUUIDs?: string[];
characteristics?: {
properties: {
Broadcast?: string;
Read?: string;
WriteWithoutResponse?: string;
Write?: string;
Notify?: string;
Indicate?: string;
AuthenticatedSignedWrites?: string;
ExtendedProperties?: string;
NotifyEncryptionRequired?: string;
IndicateEncryptionRequired?: string;
};
characteristic: string;
service: string;
descriptors?: {
value: string;
uuid: string;
}[];
}[];
services?: {
uuid: string;
}[];
};
export type EventStopScan = {
status: number;
};
export type EventDidUpdateState = {
state: string;
};
export type EventDiscoverPeripheral = {
id: string;
name: string;
rssi: number;
advertising: {
isConnectable: boolean;
serviceUUIDs: string[];
manufacturerData: number[];
serviceData: number[];
txPowerLevel: number;
rawData?: number | null;
};
};
export type EventDidUpdateValueForCharacteristic = {
value: number[];
peripheral: string;
characteristic: string;
service: string;
};
export type EventConnectPeripheral = {
peripheral: string;
status?: number | null;
};
export type EventDisconnectPeripheral = {
peripheral: string;
status?: number | null;
domain?: string | null;
code?: number | null;
};
export type EventPeripheralDidBond = {
id: string;
name: string;
rssi: number;
advertising: {
isConnectable: boolean;
serviceUUIDs: string[];
manufacturerData: number[];
serviceData: number[];
txPowerLevel: number;
rawData?: number | null;
};
};
export type EventCentralManagerWillRestoreState = {
peripherals: {
id: string;
name: string;
rssi: number;
advertising: {
isConnectable: boolean;
serviceUUIDs: string[];
manufacturerData: number[];
serviceData: number[];
txPowerLevel: number;
rawData?: number | null;
};
}[];
};
export type EventDidUpdateNotificationStateFor = {
peripheral: string;
characteristic: string;
isNotifying: boolean;
domain?: string | null;
code?: number | null;
};
export type EventCompanionPeripheral = {
id: string;
name: string;
rssi: number;
advertising: {
isConnectable: boolean;
serviceUUIDs: string[];
manufacturerData: number[];
serviceData: number[];
txPowerLevel: number;
rawData?: number | null;
};
};
export type EventCompanionFailure = {
error: string;
};