import { Workout, WorkoutConstructor } from 'fitness-models';
import { ApiActivity } from './types/api/Activity';
interface Constructor<Id, ApiSource> extends WorkoutConstructor {
    description?: string;
    gearId?: string;
    id: Id;
    source: ApiSource;
    typeId: string;
}
export default class Activity<Id extends number | undefined = any, ApiSource extends ApiActivity | undefined = any> extends Workout {
    protected typeId: string;
    protected id: Id;
    protected source: ApiSource;
    protected description?: string;
    protected gearId?: string;
    constructor(options: Constructor<Id, ApiSource>);
    static getFromApi(activity: ApiActivity): Activity<number, ApiActivity>;
    protected clone(extension: Partial<Constructor<number | undefined, ApiSource>>): this;
    toObject(): Constructor<Id, ApiSource>;
    getId(): Id;
    getTypeName(): string;
    setId(id: number): Activity<number, ApiSource>;
    setId(id: undefined): Activity<undefined, ApiSource>;
    getSource(): ApiSource;
    getDescription(): string | undefined;
    getGearId(): string | undefined;
    setGearId(gearId?: string): this;
    toApiObject(): {
        description?: string | undefined;
        distance?: number | undefined;
        name?: string | undefined;
        type: string | number;
        start_date_local: string;
        elapsed_time: number;
        commute: number;
        gear_id: string;
    };
}
export {};
