@neurosity/sdk
Version:
Neurosity SDK
73 lines (72 loc) • 3.04 kB
TypeScript
import { Observable, BehaviorSubject, ReplaySubject } from "rxjs";
import { BluetoothTransport } from "../BluetoothTransport";
import { TextCodec } from "../utils/textCodec";
import { ActionOptions, SubscribeOptions } from "../types";
import { TRANSPORT_TYPE, BLUETOOTH_CONNECTION } from "../types";
import { BleManager } from "./types/BleManagerTypes";
import { Peripheral } from "./types/BleManagerTypes";
import { NativeEventEmitter } from "./types/ReactNativeTypes";
import { PlatformOSType } from "./types/ReactNativeTypes";
import { DeviceInfo } from "../../../types/deviceInfo";
declare type Characteristic = {
characteristicUUID: string;
serviceUUID: string;
peripheralId: string;
};
declare type CharacteristicsByName = {
[name: string]: Characteristic;
};
declare type Options = {
BleManager: BleManager;
bleManagerEmitter: NativeEventEmitter;
platform: PlatformOSType;
autoConnect?: boolean;
};
declare type BleManagerEvents = {
stopScan$: Observable<void>;
discoverPeripheral$: Observable<Peripheral>;
connectPeripheral$: Observable<void>;
disconnectPeripheral$: Observable<void>;
didUpdateValueForCharacteristic$: Observable<any>;
didUpdateState$: Observable<any>;
};
export declare class ReactNativeTransport implements BluetoothTransport {
type: TRANSPORT_TYPE;
textCodec: TextCodec;
options: Options;
BleManager: BleManager;
bleManagerEmitter: NativeEventEmitter;
platform: PlatformOSType;
bleEvents: BleManagerEvents;
device: Peripheral;
characteristicsByName: CharacteristicsByName;
connection$: BehaviorSubject<BLUETOOTH_CONNECTION>;
pendingActions$: BehaviorSubject<any[]>;
logs$: ReplaySubject<string>;
onDisconnected$: Observable<void>;
connectionStream$: Observable<BLUETOOTH_CONNECTION>;
_isAutoConnectEnabled$: ReplaySubject<boolean>;
constructor(options: Options);
addLog(log: string): void;
isConnected(): boolean;
_autoConnect(selectedDevice$: Observable<DeviceInfo>): Observable<void>;
enableAutoConnect(autoConnect: boolean): void;
connection(): Observable<BLUETOOTH_CONNECTION>;
_fromEvent(eventName: string): Observable<any>;
scan(options?: {
seconds?: number;
once?: boolean;
skipConnectionUpdate?: boolean;
}): Observable<Peripheral[]>;
connect(peripheral: Peripheral): Promise<void>;
disconnect(): Promise<void>;
getCharacteristicByName(characteristicName: string): Characteristic;
subscribeToCharacteristic({ characteristicName, manageNotifications, skipJSONDecoding }: SubscribeOptions): Observable<any>;
readCharacteristic(characteristicName: string, parse?: boolean): Promise<any>;
writeCharacteristic(characteristicName: string, data: string): Promise<void>;
_addPendingAction(actionId: number): void;
_removePendingAction(actionId: number): void;
_autoToggleActionNotifications(): Observable<any>;
dispatchAction({ characteristicName, action }: ActionOptions): Promise<any>;
}
export {};