import { BodyMeasurement, ExerciseType, BaseExerciseTemplate, OwnedWorkoutExerciseSet } from '.'; export declare const isVolumeDoublingSupportableForExerciseTemplate: (exerciseTemplate: Pick) => boolean; export interface VolumeCalculableWorkout { exercises: { exercise_type: ExerciseType; exercise_template_id: string; volume_doubling_enabled: boolean; hundred_percent_bodyweight_exercise: boolean; sets: Pick[]; }[]; include_warmup_sets: boolean; } export interface TimestampedVolumeCalculableWorkout extends VolumeCalculableWorkout { start_time: number; } interface WorkoutVolumeKgProps { workout: TimestampedVolumeCalculableWorkout; measurements: Pick[]; } export type BodyWeightMeasurement = BodyMeasurement & Required>; export declare const workoutVolumeKg: ({ workout, measurements, }: WorkoutVolumeKgProps) => number; interface EstimatedWorkoutVolumeKgProps { workout: VolumeCalculableWorkout; bodyweightKg: number; } export declare const estimatedWorkoutVolumeKg: ({ workout, bodyweightKg, }: EstimatedWorkoutVolumeKgProps) => number; /** * Given a date, this will return the nearest bodyweight value * that was logged before it. */ export declare const getClosestRelevantBodyWeightKgForDate: (bodyWeightMeasurements: BodyWeightMeasurement[], date: Date) => number | undefined; export interface WorkoutVolumeSetsVolumeKgProps { bodyweightKg: number; sets: WorkoutVolumeSet[]; } export interface WorkoutVolumeSet { type: ExerciseType; exerciseTemplateId: string; weightKg: number; reps: number; distanceMeters: number; volumeDoublingEnabled?: boolean; hundredPercentBodyweightExercise: boolean; } export declare const setVolumeKg: (set: WorkoutVolumeSet, bodyweightKg: number) => number; export {};