import { ExerciseType, NormalizedExercise, NormalizedWorkout, RPE, RepRange, Routine, RoutineExercise, RoutineUpdate, RoutineUpdateExercise, SetType } from '..'; interface RoutineBuilderScope { nextExerciseId: () => string; } export declare class RoutineBuilder { private _exerciseId; private _exercises; constructor(); private _scope; addExercise: (builderScope: (builder: RoutineExerciseBuilder) => RoutineExerciseBuilder) => this; build: () => Routine; } interface RoutineExerciseBuilderProps { exerciseTemplateId: string; exerciseType: ExerciseType; supersetId?: number | null; restSeconds?: number | null; inputModifier?: 'rep-range'; } declare class RoutineExerciseBuilder { private _routineBuilderScope; private _exercise; constructor(routineBuilderScope: RoutineBuilderScope); setProps: (props: RoutineExerciseBuilderProps) => RoutineExerciseBuilder; private _addSet; addWeightRepsSet: (indicator: SetType, weight_kg?: number | null, reps?: number | null, rpe?: RPE | null) => this; addWeightRepRangeSet: (indicator: SetType, weight_kg?: number | null, rep_range?: RepRange, rpe?: RPE | null) => this; addRepsSet: (indicator: SetType, reps?: number | null, rpe?: RPE | null) => this; addRepRangeSet: (indicator: SetType, rep_range?: RepRange, rpe?: RPE | null) => this; addDistanceDurationSet: (indicator: SetType, distance_meters?: number | null, duration_seconds?: number | null) => this; addDurationSet: (indicator: SetType, duration_seconds?: number | null) => this; addShortDistanceWeightSet: (indicator: SetType, distance_meters?: number | null, weight_kg?: number | null) => this; build: () => RoutineExercise; } export declare class WorkoutBuilder { private _exercises; constructor(); addExercise: (builderScope: (builder: WorkoutExerciseBuilder) => WorkoutExerciseBuilder) => this; build: () => NormalizedWorkout; } interface WorkoutExerciseBuilderProps { id: string; supersetId?: number; autoRestTimerSeconds?: number; } declare class WorkoutExerciseBuilder { private _exercise; constructor(); setProps: (props: WorkoutExerciseBuilderProps) => WorkoutExerciseBuilder; private _addSet; addWeightRepsSet: (indicator: SetType, weight?: number, reps?: number, rpe?: RPE, completed?: boolean) => this; addRepsSet: (indicator: SetType, reps?: number, rpe?: RPE, completed?: boolean) => this; addDistanceDurationSet: (indicator: SetType, distance?: number, duration?: number) => this; addDurationSet: (indicator: SetType, duration?: number) => this; addShortDistanceWeightSet: (indicator: SetType, distance?: number, weight?: number) => this; build: () => NormalizedExercise; } export declare class RoutineUpdateBuilder { private _exercises; constructor(); addExercise: (builderScope: (builder: RoutineUpdateExerciseBuilder) => RoutineUpdateExerciseBuilder) => this; build: () => RoutineUpdate; } interface RoutineUpdateExerciseBuilderProps { exerciseTemplateId: string; supersetId?: number; restSeconds?: number; inputModifier?: 'rep-range'; } declare class RoutineUpdateExerciseBuilder { private _exercise; constructor(); setProps: (props: RoutineUpdateExerciseBuilderProps) => RoutineUpdateExerciseBuilder; private _addSet; addWeightRepsSet: (indicator: SetType, weight_kg?: number | null, reps?: number | null, rpe?: RPE | null) => this; addWeightRepRangeSet: (indicator: SetType, weight_kg?: number | null, rep_range?: RepRange, rpe?: RPE | null) => this; addRepsSet: (indicator: SetType, reps?: number | null, rpe?: RPE | null) => this; addRepRangeSet: (indicator: SetType, rep_range?: RepRange, rpe?: RPE | null) => this; addDistanceDurationSet: (indicator: SetType, distance_meters?: number | null, duration_seconds?: number | null) => this; addDurationSet: (indicator: SetType, duration_seconds?: number | null) => this; addShortDistanceWeightSet: (indicator: SetType, distance_meters?: number | null, weight_kg?: number | null) => this; build: () => RoutineUpdateExercise; } export {};