react-native-health-connect
Version:
React native library for health connect (Android only)
198 lines • 11 kB
TypeScript
import type { EnergyResult, IntervalRecord, LengthResult, MassResult, PowerSampleResult, PressureResult, SpeedSampleResult, VolumeResult } from './base.types';
import type { ActiveCaloriesBurnedRecord, BasalBodyTemperatureRecord, BasalMetabolicRateRecord, BloodGlucoseRecord, BloodPressureRecord, BodyFatRecord, BodyTemperatureRecord, BodyWaterMassRecord, BoneMassRecord, CervicalMucusRecord, CyclingPedalingCadenceRecord, DistanceRecord, ElevationGainedRecord, ExerciseSessionRecord, FloorsClimbedRecord, HeartRateRecord, HeartRateVariabilityRmssdRecord, HeightRecord, HydrationRecord, IntermenstrualBleedingRecord, LeanBodyMassRecord, MenstruationFlowRecord, MenstruationPeriodRecord, OvulationTestRecord, OxygenSaturationRecord, PowerRecord, RecordType, RespiratoryRateRecord, RestingHeartRateRecord, SexualActivityRecord, SleepSessionRecord, SpeedRecord, StepsCadenceRecord, StepsRecord, TotalCaloriesBurnedRecord, Vo2MaxRecord, WeightRecord, WheelchairPushesRecord } from './records.types';
type Identity<T> = {
[P in keyof T]: T[P];
};
type Replace<T, K extends keyof T, TReplace> = Identity<Pick<T, Exclude<keyof T, K>> & {
[P in K]: TReplace;
}>;
interface ActiveCaloriesBurnedRecordResult extends Replace<ActiveCaloriesBurnedRecord, 'energy', EnergyResult> {
}
interface BasalBodyTemperatureRecordResult extends Replace<BasalBodyTemperatureRecord, 'temperature', {
inFahrenheit: number;
inCelsius: number;
}> {
}
interface BasalMetabolicRateRecordResult extends Replace<BasalMetabolicRateRecord, 'basalMetabolicRate', {
inKilocaloriesPerDay: number;
inWatts: number;
}> {
}
interface BloodGlucoseRecordResult extends Replace<BloodGlucoseRecord, 'level', {
inMillimolesPerLiter: number;
inMilligramsPerDeciliter: number;
}> {
}
interface BloodPressureRecordResult extends Omit<BloodPressureRecord, 'systolic' | 'diastolic'> {
systolic: PressureResult;
diastolic: PressureResult;
}
interface BodyTemperatureRecordResult extends Replace<BodyTemperatureRecord, 'temperature', {
inFahrenheit: number;
inCelsius: number;
}> {
}
interface BodyFatRecordResult extends BodyFatRecord {
}
interface BodyWaterMassRecordResult extends Replace<BodyWaterMassRecord, 'mass', MassResult> {
}
interface BoneMassRecordResult extends Replace<BoneMassRecord, 'mass', MassResult> {
}
interface CervicalMucusRecordResult extends CervicalMucusRecord {
}
interface CyclingPedalingCadenceRecordResult extends CyclingPedalingCadenceRecord {
}
interface ElevationGainedRecordResult extends Omit<ElevationGainedRecord, 'elevation'> {
elevation: LengthResult;
}
interface ExerciseSessionRecordResult extends ExerciseSessionRecord {
}
interface FloorsClimbedRecordResult extends FloorsClimbedRecord {
}
interface HeartRateRecordResult extends HeartRateRecord {
}
interface RestingHeartRateRecordResult extends RestingHeartRateRecord {
}
interface StepsRecordResult extends StepsRecord {
}
interface StepsCadenceRecordResult extends StepsCadenceRecord {
}
interface DistanceRecordResult extends Replace<DistanceRecord, 'distance', LengthResult> {
}
interface HeightRecordResult extends Replace<HeightRecord, 'height', LengthResult> {
}
interface HydrationRecordResult extends Replace<HydrationRecord, 'volume', VolumeResult> {
}
interface HeartRateVariabilityRmssdRecordResult extends HeartRateVariabilityRmssdRecord {
}
interface SexualActivityRecordResult extends SexualActivityRecord {
}
interface WeightRecordResult extends Replace<WeightRecord, 'weight', MassResult> {
}
interface NutritionRecordResult extends IntervalRecord {
recordType: 'Nutrition';
/** Biotin in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
biotin?: MassResult;
/** Caffeine in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
caffeine?: MassResult;
/** Calcium in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
calcium?: MassResult;
/** Energy in [Energy] unit. Optional field. Valid range: 0-100000 kcal. */
energy?: EnergyResult;
/** Energy from fat in [Energy] unit. Optional field. Valid range: 0-100000 kcal. */
energyFromFat?: EnergyResult;
/** Chloride in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
chloride?: MassResult;
/** Cholesterol in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
cholesterol?: MassResult;
/** Chromium in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
chromium?: MassResult;
/** Copper in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
copper?: MassResult;
/** Dietary fiber in [MassResult] unit. Optional field. Valid range: 0-100000 grams. */
dietaryFiber?: MassResult;
/** Folate in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
folate?: MassResult;
/** Folic acid in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
folicAcid?: MassResult;
/** Iodine in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
iodine?: MassResult;
/** Iron in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
iron?: MassResult;
/** Magnesium in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
magnesium?: MassResult;
/** Manganese in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
manganese?: MassResult;
/** Molybdenum in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
molybdenum?: MassResult;
/** Monounsaturated fat in [MassResult] unit. Optional field. Valid range: 0-100000 grams. */
monounsaturatedFat?: MassResult;
/** Niacin in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
niacin?: MassResult;
/** Pantothenic acid in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
pantothenicAcid?: MassResult;
/** Phosphorus in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
phosphorus?: MassResult;
/** Polyunsaturated fat in [MassResult] unit. Optional field. Valid range: 0-100000 grams. */
polyunsaturatedFat?: MassResult;
/** Potassium in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
potassium?: MassResult;
/** Protein in [MassResult] unit. Optional field. Valid range: 0-100000 grams. */
protein?: MassResult;
/** Riboflavin in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
riboflavin?: MassResult;
/** Saturated fat in [MassResult] unit. Optional field. Valid range: 0-100000 grams. */
saturatedFat?: MassResult;
/** Selenium in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
selenium?: MassResult;
/** Sodium in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
sodium?: MassResult;
/** Sugar in [MassResult] unit. Optional field. Valid range: 0-100000 grams. */
sugar?: MassResult;
/** Thiamin in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
thiamin?: MassResult;
/** Total carbohydrate in [MassResult] unit. Optional field. Valid range: 0-100000 grams. */
totalCarbohydrate?: MassResult;
/** Total fat in [MassResult] unit. Optional field. Valid range: 0-100000 grams. */
totalFat?: MassResult;
/** Trans fat in [MassResult] unit. Optional field. Valid range: 0-100000 grams. */
transFat?: MassResult;
/** Unsaturated fat in [MassResult] unit. Optional field. Valid range: 0-100000 grams. */
unsaturatedFat?: MassResult;
/** Vitamin A in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
vitaminA?: MassResult;
/** Vitamin B12 in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
vitaminB12?: MassResult;
/** Vitamin B6 in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
vitaminB6?: MassResult;
/** Vitamin C in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
vitaminC?: MassResult;
/** Vitamin D in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
vitaminD?: MassResult;
/** Vitamin E in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
vitaminE?: MassResult;
/** Vitamin K in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
vitaminK?: MassResult;
/** Zinc in [MassResult] unit. Optional field. Valid range: 0-100 grams. */
zinc?: MassResult;
/** Name for food or drink, provided by the user. Optional field. */
name?: string;
/** Check MealType constant */
mealType: number;
}
interface IntermenstrualBleedingRecordResult extends IntermenstrualBleedingRecord {
}
interface LeanBodyMassRecordResult extends Replace<LeanBodyMassRecord, 'mass', MassResult> {
}
interface SpeedRecordResult extends Replace<SpeedRecord, 'samples', SpeedSampleResult[]> {
}
interface MenstruationFlowRecordResult extends MenstruationFlowRecord {
}
interface MenstruationPeriodRecordResult extends MenstruationPeriodRecord {
}
interface SleepSessionRecordResult extends SleepSessionRecord {
}
interface RespiratoryRateRecordResult extends RespiratoryRateRecord {
}
interface WheelchairPushesRecordResult extends WheelchairPushesRecord {
}
interface Vo2MaxRecordResult extends Vo2MaxRecord {
}
interface OvulationTestRecordResult extends OvulationTestRecord {
}
interface TotalCaloriesBurnedRecordResult extends Replace<TotalCaloriesBurnedRecord, 'energy', EnergyResult> {
}
interface OxygenSaturationRecordResult extends OxygenSaturationRecord {
}
interface PowerRecordResult extends Replace<PowerRecord, 'samples', PowerSampleResult[]> {
}
export type HealthConnectRecordResult = ActiveCaloriesBurnedRecordResult | BasalBodyTemperatureRecordResult | BasalMetabolicRateRecordResult | BloodGlucoseRecordResult | BloodPressureRecordResult | BodyFatRecordResult | BodyTemperatureRecordResult | BodyWaterMassRecordResult | BoneMassRecordResult | CervicalMucusRecordResult | ElevationGainedRecordResult | ExerciseSessionRecordResult | FloorsClimbedRecordResult | CyclingPedalingCadenceRecordResult | HeartRateRecordResult | RestingHeartRateRecordResult | StepsRecordResult | StepsCadenceRecordResult | DistanceRecordResult | HeightRecordResult | HydrationRecordResult | HeartRateVariabilityRmssdRecordResult | SexualActivityRecordResult | WeightRecordResult | WeightRecordResult | NutritionRecordResult | LeanBodyMassRecordResult | IntermenstrualBleedingRecordResult | SpeedRecordResult | MenstruationFlowRecordResult | MenstruationPeriodRecordResult | SleepSessionRecordResult | RespiratoryRateRecordResult | WheelchairPushesRecordResult | Vo2MaxRecordResult | OvulationTestRecordResult | TotalCaloriesBurnedRecordResult | OxygenSaturationRecordResult | PowerRecordResult;
export type RecordResult<T extends RecordType> = Omit<Extract<HealthConnectRecordResult, {
recordType: T;
}>, 'recordType'>;
export type ReadRecordsResult<T extends RecordType> = {
records: RecordResult<T>[];
pageToken?: string;
};
export {};
//# sourceMappingURL=results.types.d.ts.map