trainingpeaks-sdk
Version:
TypeScript SDK for TrainingPeaks API integration
27 lines • 1.73 kB
TypeScript
import type { Workout } from '../../domain/schemas/entities.schema.js';
import type { WorkoutStructure } from '../../domain/schemas/workout-structure.schema.js';
export interface WorkoutAggregate {
readonly workout: Workout;
readonly structure?: WorkoutStructure;
}
export declare const createWorkoutAggregate: (id: string, name: string, date: Date, duration: number, description?: string, distance?: number, activityType?: string, structure?: WorkoutStructure, fileContent?: string, fileName?: string) => WorkoutAggregate;
export declare const updateWorkoutAggregate: (aggregate: WorkoutAggregate, updates: Partial<Pick<Workout, "name" | "description" | "distance" | "activityType">>) => WorkoutAggregate;
export declare const updateWorkoutStructure: (aggregate: WorkoutAggregate, newStructure: WorkoutStructure) => WorkoutAggregate;
export declare const removeWorkoutStructure: (aggregate: WorkoutAggregate, newDuration: number) => WorkoutAggregate;
export declare const addWorkoutFile: (aggregate: WorkoutAggregate, fileContent: string, fileName: string) => WorkoutAggregate;
export declare const removeWorkoutFile: (aggregate: WorkoutAggregate) => WorkoutAggregate;
export declare const getAggregateDuration: (aggregate: WorkoutAggregate) => number;
export declare const isAggregateConsistent: (aggregate: WorkoutAggregate) => boolean;
export declare const getAggregateSummary: (aggregate: WorkoutAggregate) => {
id: string;
name: string;
date: Date;
duration: number;
distance: number | undefined;
activityType: string | undefined;
isStructured: boolean;
hasFile: boolean;
structureElementCount: number;
isConsistent: boolean;
};
//# sourceMappingURL=workout-aggregate.d.ts.map