/** * rn-veepoo-sdk TypeScript Type Definitions * Based on official Veepoo SDK Android/iOS API documentation */ export interface VeepooDevice { id: string; name: string; rssi: number; mac?: string; uuid?: string; address?: string; } export type ConnectionStatus = 'disconnected' | 'connecting' | 'connected' | 'disconnecting' | 'ready' | 'error'; export interface ConnectionResult { status: ConnectionStatus; code?: number; mac: string; isOadModel?: boolean; deviceVersion?: string; deviceNumber?: string; } export interface ScanOptions { timeout?: number; allowDuplicates?: boolean; } export interface ScanResult { device: VeepooDevice; timestamp: number; } export interface ConnectOptions { password?: string; is24Hour?: boolean; timeSetting?: DeviceTimeSetting; uuid?: string; } export interface DeviceTimeSetting { year: number; month: number; day: number; hour: number; minute: number; second: number; system?: number; } export type BluetoothState = 'unknown' | 'resetting' | 'unsupported' | 'unauthorized' | 'poweredOff' | 'poweredOn'; export type BluetoothAuthorization = 'notDetermined' | 'restricted' | 'denied' | 'allowedAlways'; export type PermissionStatus = 'granted' | 'denied' | 'never_ask_again'; export interface PermissionsResult { granted: boolean; status: PermissionStatus; canAskAgain?: boolean; } export interface BluetoothStatus { state: BluetoothState; stateName: string; authorization: BluetoothAuthorization; authorizationName: string; isScanning: boolean; pendingScanStart: boolean; } export type PasswordStatus = 'CHECK_SUCCESS' | 'CHECK_FAIL' | 'NOT_SET' | 'SUCCESS' | 'FAILED' | 'UNKNOWN'; export interface PasswordData { status: PasswordStatus; password: string; deviceNumber?: string; deviceVersion?: string; deviceTestVersion?: string; isHaveDrinkData?: boolean; isOpenNightTurnWrist?: FunctionStatus; findPhoneFunction?: FunctionStatus; wearDetectFunction?: FunctionStatus; } export type FunctionStatus = 'unsupported' | 'support' | 'open' | 'close' | 'unknown'; export interface DeviceFunctionPackage1 { bloodPressure?: FunctionStatus; drinking?: FunctionStatus; sedentaryRemind?: FunctionStatus; heartRateWarning?: FunctionStatus; weChatSport?: FunctionStatus; camera?: FunctionStatus; fatigue?: FunctionStatus; spoH?: FunctionStatus; spo2HAdjustment?: FunctionStatus; spoHBreathBreak?: FunctionStatus; woman?: FunctionStatus; alarm?: FunctionStatus; newCalcSport?: FunctionStatus; ambulatoryBPAdjustment?: FunctionStatus; screenLight?: FunctionStatus; heartRateDetect?: FunctionStatus; nightTurnSetting?: FunctionStatus; textAlarm?: FunctionStatus; temperatureFunction?: FunctionStatus; } export interface DeviceFunctionPackage2 { countDown?: FunctionStatus; sportModelFunction?: FunctionStatus; hidFunction?: FunctionStatus; screenStyleFunction?: FunctionStatus; breathFunction?: FunctionStatus; hrvFunction?: FunctionStatus; weatherFunction?: FunctionStatus; screenLightTime?: FunctionStatus; precisionSleep?: FunctionStatus; ecgFunction?: FunctionStatus; multSportMode?: FunctionStatus; lowPower?: FunctionStatus; sleepTag?: number; watchDataDayNumber?: number; contactMsgLength?: number; allMsgLength?: number; sportModelDay?: number; screenstyle?: number; weatherStyle?: number; originProtocolVersion?: number; ecgType?: number; } export interface DeviceFunctionPackage3 { bigDataTranType?: number; watchUiServerCount?: number; watchUiCustomCount?: number; temperatureFunction?: FunctionStatus; temperatureType?: number; cpuType?: number; stressFunction?: FunctionStatus; stressType?: number; contactFunction?: FunctionStatus; contactType?: number; musicStyle?: number; findDeviceByPhoneFunction?: FunctionStatus; agpsFunction?: FunctionStatus; bloodGlucoseTag?: number; bloodGlucose?: number; bloodGlucoseAdjusting?: FunctionStatus; bloodGlucoseMultipleAdjusting?: FunctionStatus; bloodGlucoseRiskAssessment?: FunctionStatus; bloodComponent?: FunctionStatus; bodyComponent?: FunctionStatus; } export interface DeviceFunctionPackage4 { bloodComponent?: FunctionStatus; bloodComponentSingleCalibration?: FunctionStatus; bodyComponent?: FunctionStatus; worldClock?: FunctionStatus; autoMeasure?: FunctionStatus; temperatureAlarm?: FunctionStatus; wallet?: FunctionStatus; postcard?: FunctionStatus; gameSetting?: FunctionStatus; aiQA?: FunctionStatus; aiDial?: FunctionStatus; distanceCalorieGoal?: FunctionStatus; videoDial?: FunctionStatus; photoAlbum?: FunctionStatus; miniCheckup?: FunctionStatus; } export interface DeviceFunctionPackage5 { textImagePush: FunctionStatus; } export interface DeviceFunctions { package1?: DeviceFunctionPackage1; package2?: DeviceFunctionPackage2; package3?: DeviceFunctionPackage3; package4?: DeviceFunctionPackage4; package5?: DeviceFunctionPackage5; } export interface DeviceVersion { hardwareVersion: string; firmwareVersion: string; softwareVersion: string; deviceNumber: string; newVersion: string; description: string; } export type ChargeState = 'normal' | 'charging' | 'lowPressure' | 'full'; export interface BatteryInfo { level: number; percent: number; powerModel: number; state: number; bat: number; isPercent: boolean; isLowBattery: boolean; chargeState?: ChargeState; } export type Sex = 0 | 1; export interface PersonalInfo { sex: Sex; height: number; weight: number; age: number; stepAim: number; sleepAim: number; } export interface HeartRateData { value: number; timestamp: number; } export interface BloodPressureData { systolic: number; diastolic: number; pulse: number; timestamp: number; } export interface BloodOxygenData { spo2: number; timestamp: number; } export interface TemperatureData { temperature: number; timestamp: number; isSurface?: boolean; originalTemp?: number; } export interface StressData { stress: number; timestamp: number; progress?: number; status?: string; isEnd?: boolean; } export interface BloodGlucoseData { glucose?: number; progress?: number; level?: string | number; state?: TestState; status?: string; timestamp?: number; isEnd?: boolean; error?: string; } export interface SleepDataItem { date: string; sleepTime: string; wakeTime: string; deepSleepMinutes: number; lightSleepMinutes: number; totalSleepMinutes: number; sleepQuality: number; sleepLine: string; wakeUpCount: number; } export interface SleepData { date: string; items: SleepDataItem[]; summary: { totalDeepSleepMinutes: number; totalLightSleepMinutes: number; totalSleepMinutes: number; averageSleepQuality: number; totalWakeUpCount: number; }; } export interface DailyHealthData { date: string; stepCount?: number; distance?: number; calories?: number; heartRate?: number; bloodPressure?: BloodPressureData; bloodOxygen?: BloodOxygenData; temperature?: TemperatureData; stress?: StressData; bloodGlucose?: BloodGlucoseData; } export interface SportStepData { date: string; stepCount: number; distance: number; calories: number; } export interface DaySummaryData { date: string; allStep: number; sportList: Array<{ time: string; step: number; cal: number; dis: number; }>; rateList: Array<{ time: string; rate: number; }>; bpList: Array<{ time: string; high: number; low: number; }>; } export interface OriginData { time: string; heartValue: number; stepValue: number; calValue: number; disValue: number; sportValue: number; systolic: number; diastolic: number; spo2Value: number; tempValue: number; stressValue: number; met: number; oxygens?: number[]; ppgs?: number[]; ecgs?: number[]; resRates?: number[]; sleepStates?: number[]; apneaResults?: number[]; hypoxiaTimes?: number[]; cardiacLoads?: number[]; bloodGlucose?: number; } export interface HalfHourData { time: string; heartValue?: number; sportValue?: number; stepValue?: number; calValue?: number; disValue?: number; diastolic?: number; systolic?: number; spo2Value?: number; tempValue?: number; stressValue?: number; met?: number; bloodGlucose?: number; glucose?: number; bloodGlucoseLevel?: unknown; bloodGlucoses?: unknown; } export type TestState = 'idle' | 'start' | 'testing' | 'notWear' | 'deviceBusy' | 'over' | 'error'; export interface HeartRateTestResult { state: TestState; value?: number; progress?: number; } export interface BloodPressureTestResult { state: TestState; systolic?: number; diastolic?: number; pulse?: number; progress?: number; } export interface BloodOxygenTestResult { state: TestState; value?: number; rate?: number; progress?: number; } export interface Spo2OriginData { time: string; date: string; heartValue: number; value: number; rate: number; isHypoxia: number; cardiacLoad: number; temp1: number; sportValue: number; apneaResult: number; hypoxiaTime: number; hypopnea: number; stepValue: number; allPackNumber: number; currentPackNumber: number; } export interface TemperatureTestResult { state: TestState; value?: number; originalTemp?: number; progress?: number; enable?: boolean; } export interface BloodGlucoseTestResult { state: TestState; glucose?: number; progress?: number; level?: string | number; isEnd?: boolean; } export type ReadState = 'idle' | 'start' | 'reading' | 'complete' | 'invalid'; export interface ReadOriginProgress { readState: ReadState; totalDays: number; currentDay: number; progress: number; } export interface AutoMeasureSetting { protocolType: number; funType: number; isSwitchOpen: boolean; stepUnit: number; isSlotModify: boolean; isIntervalModify: boolean; supportStartMinute: number; supportEndMinute: number; measureInterval: number; currentStartMinute: number; currentEndMinute: number; } export type Language = 'chinese' | 'chineseTraditional' | 'english' | 'japanese' | 'korean' | 'german' | 'russian' | 'spanish' | 'italian' | 'french' | 'vietnamese' | 'portuguese' | 'thai' | 'polish' | 'swedish' | 'turkish' | 'dutch' | 'czech' | 'arabic' | 'hungarian' | 'greek' | 'romanian' | 'slovak' | 'indonesian' | 'brazilianPortuguese' | 'croatian' | 'lithuanian' | 'ukrainian' | 'hindi' | 'hebrew' | 'danish' | 'persian' | 'finnish' | 'malay'; export interface SocialMsgData { phone: FunctionStatus; sms: FunctionStatus; wechat: FunctionStatus; qq: FunctionStatus; facebook: FunctionStatus; twitter: FunctionStatus; instagram: FunctionStatus; linkedin: FunctionStatus; whatsapp: FunctionStatus; line: FunctionStatus; skype: FunctionStatus; email: FunctionStatus; other: FunctionStatus; } export interface CustomSettingData { [key: string]: string | number | boolean; } export type VeepooErrorCode = 'UNKNOWN' | 'PERMISSION_DENIED' | 'CONNECTION_FAILED' | 'DISCONNECTION_FAILED' | 'BLUETOOTH_NOT_ENABLED' | 'DEVICE_NOT_FOUND' | 'OPERATION_FAILED' | 'SDK_NOT_INITIALIZED' | 'DEVICE_NOT_CONNECTED' | 'DEVICE_BUSY' | 'PASSWORD_REQUIRED' | 'TIMEOUT' | 'NOT_WEARING'; export interface VeepooError { code: VeepooErrorCode; message: string; deviceId?: string; } export type VeepooEvent = 'deviceFound' | 'deviceConnected' | 'deviceDisconnected' | 'deviceConnectStatus' | 'deviceReady' | 'bluetoothStateChanged' | 'deviceFunction' | 'deviceVersion' | 'passwordData' | 'socialMsgData' | 'readOriginProgress' | 'readOriginComplete' | 'originFiveMinuteData' | 'originHalfHourData' | 'originSpo2Data' | 'sleepData' | 'sportStepData' | 'heartRateTestResult' | 'bloodPressureTestResult' | 'bloodOxygenTestResult' | 'temperatureTestResult' | 'stressData' | 'bloodGlucoseData' | 'bloodGlucoseTestResult' | 'batteryData' | 'customSettingData' | 'dataReceived' | 'connectionStatusChanged' | 'error'; export interface VeepooEventPayload { deviceFound: { device: VeepooDevice; timestamp: number; }; deviceConnected: { deviceId: string; deviceVersion?: string; deviceNumber?: string; isOadModel?: boolean; }; deviceDisconnected: { deviceId: string; }; deviceConnectStatus: { deviceId: string; status: ConnectionStatus; code?: number; }; deviceReady: { deviceId: string; isOadModel?: boolean; }; bluetoothStateChanged: BluetoothStatus; deviceFunction: { deviceId: string; functions?: DeviceFunctions; data?: DeviceFunctions; }; deviceVersion: { deviceId: string; version: DeviceVersion; }; passwordData: { deviceId: string; data: PasswordData; }; socialMsgData: { deviceId: string; data: SocialMsgData; }; readOriginProgress: { deviceId: string; progress: ReadOriginProgress; }; readOriginComplete: { deviceId: string; success: boolean; }; originFiveMinuteData: { deviceId: string; data: OriginData; }; originHalfHourData: { deviceId: string; data: HalfHourData; }; originSpo2Data: { deviceId: string; data: Spo2OriginData[]; }; sleepData: { deviceId: string; date: string; data: SleepData; }; sportStepData: { deviceId: string; date: string; data: SportStepData; }; heartRateTestResult: { deviceId: string; result: HeartRateTestResult; }; bloodPressureTestResult: { deviceId: string; result: BloodPressureTestResult; }; bloodOxygenTestResult: { deviceId: string; result: BloodOxygenTestResult; }; temperatureTestResult: { deviceId: string; result: TemperatureTestResult; }; stressData: { deviceId: string; data: StressData; }; bloodGlucoseData: { deviceId: string; data: BloodGlucoseData; }; bloodGlucoseTestResult: { deviceId: string; result: BloodGlucoseTestResult; }; batteryData: { deviceId: string; data: BatteryInfo; }; customSettingData: { deviceId: string; data: CustomSettingData; }; dataReceived: { deviceId: string; data: unknown; }; connectionStatusChanged: { deviceId: string; status: ConnectionStatus; }; error: VeepooError; } export type OperationStatus = 'success' | 'fail' | 'unknown'; export type TemperatureUnit = 'celsius' | 'fahrenheit'; export type DistanceUnit = 'metric' | 'imperial'; export type TimeFormat = '12hour' | '24hour'; export type BloodGlucoseUnit = 'mmolL' | 'mgdL'; export interface DeviceAlarm { id: number; enabled: boolean; hour: number; minute: number; repeat: number[]; type?: 'normal' | 'text'; text?: string; } export interface DeviceData { deviceId: string; data: unknown; } //# sourceMappingURL=types.d.ts.map