import type { _HKDevice } from "./HKDevice.js";
import type { _HKQuantity } from "./HKQuantity.js";
import type { _HKQuantityType } from "./HKQuantityType.js";
import type { _HKSample } from "./HKSample.js";
import type { _HKStatistics } from "./HKStatistics.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSDate } from "../Foundation/NSDate.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { HKWorkoutActivityType } from "./HKWorkoutActivityType.js";
export declare class _HKWorkout extends _HKSample {
    static alloc(): _HKWorkout;
    static new(): _HKWorkout;
    init(): _HKWorkout;
    /**
     * @method workoutWithActivityType:startDate:endDate: @param workoutActivityType The activity type of the workout @param startDate The point in time that the workout was started @param endDate The point in time that the workout was ended
     * @deprecated Use HKWorkoutBuilder
     */
    static workoutWithActivityType$startDate$endDate$(workoutActivityType: HKWorkoutActivityType, startDate: _NSDate, endDate: _NSDate): _HKWorkout;
    /**
     * @method workoutWithActivityType:startDate:endDate:workoutEvents:totalEnergyBurned:totalDistance:metadata @discussion If the optional total parameters are specified, matching samples that add up to the calculated total quantities should be associated with this workout using addSamples:toWorkout:completion: in HKHealthStore. @param workoutActivityType The activity type of the workout @param startDate The point in time that the workout was started @param endDate The point in time that the workout was ended @param workoutEvents An array of HKWorkoutEvents. The workout's duration is derived from these events. (Optional) @param totalEnergyBurned The amount of energy that was burned during the workout. (Optional) @param totalDistance The total distance that was traveled during the workout. (Optional) @param metadata Metadata for the workout. (Optional)
     */
    static workoutWithActivityType$startDate$endDate$workoutEvents$totalEnergyBurned$totalDistance$metadata$(workoutActivityType: HKWorkoutActivityType, startDate: _NSDate, endDate: _NSDate, workoutEvents: _NSArray | null, totalEnergyBurned: _HKQuantity | null, totalDistance: _HKQuantity | null, metadata: _NSDictionary | null): _HKWorkout;
    /**
     * @method workoutWithActivityType:startDate:endDate:workoutEvents:totalEnergyBurned:totalDistance:metadata @discussion If the optional total parameters are specified, matching samples that add up to the calculated total quantities should be associated with this workout using addSamples:toWorkout:completion: in HKHealthStore. @param workoutActivityType The activity type of the workout @param startDate The point in time that the workout was started @param endDate The point in time that the workout was ended @param workoutEvents An array of HKWorkoutEvents. The workout's duration is derived from these events. (Optional) @param totalEnergyBurned The amount of energy that was burned during the workout. (Optional) @param totalDistance The total distance that was traveled during the workout. (Optional) @param device The HKDevice associated with the workout. (Optional) @param metadata Metadata for the workout. (Optional)
     */
    static workoutWithActivityType$startDate$endDate$workoutEvents$totalEnergyBurned$totalDistance$device$metadata$(workoutActivityType: HKWorkoutActivityType, startDate: _NSDate, endDate: _NSDate, workoutEvents: _NSArray | null, totalEnergyBurned: _HKQuantity | null, totalDistance: _HKQuantity | null, device: _HKDevice | null, metadata: _NSDictionary | null): _HKWorkout;
    /**
     * @method workoutWithActivityType:startDate:endDate:duration:totalEnergyBurned:totalDistance:metadata: @discussion If the optional total parameters are specified, matching samples that add up to the calculated total quantities should be associated with this workout using addSamples:toWorkout:completion: in HKHealthStore. @param workoutActivityType The activity type of the workout @param startDate The point in time that the workout was started @param endDate The point in time that the workout was ended @param duration The duration of the workout. If 0, the difference between startDate and endDate is used. @param totalEnergyBurned The amount of energy that was burned during the workout. (Optional) @param totalDistance The total distance that was traveled during the workout. (Optional) @param metadata Metadata for the workout. (Optional)
     */
    static workoutWithActivityType$startDate$endDate$duration$totalEnergyBurned$totalDistance$metadata$(workoutActivityType: HKWorkoutActivityType, startDate: _NSDate, endDate: _NSDate, duration: number, totalEnergyBurned: _HKQuantity | null, totalDistance: _HKQuantity | null, metadata: _NSDictionary | null): _HKWorkout;
    /**
     * @method workoutWithActivityType:startDate:endDate:duration:totalEnergyBurned:totalDistance:device:metadata: @discussion If the optional total parameters are specified, matching samples that add up to the calculated total quantities should be associated with this workout using addSamples:toWorkout:completion: in HKHealthStore. @param workoutActivityType The activity type of the workout @param startDate The point in time that the workout was started @param endDate The point in time that the workout was ended @param duration The duration of the workout. If 0, the difference between startDate and endDate is used. @param totalEnergyBurned The amount of energy that was burned during the workout. (Optional) @param totalDistance The total distance that was traveled during the workout. (Optional) @param device The HKDevice associated with the workout. (Optional) @param metadata Metadata for the workout. (Optional)
     */
    static workoutWithActivityType$startDate$endDate$duration$totalEnergyBurned$totalDistance$device$metadata$(workoutActivityType: HKWorkoutActivityType, startDate: _NSDate, endDate: _NSDate, duration: number, totalEnergyBurned: _HKQuantity | null, totalDistance: _HKQuantity | null, device: _HKDevice | null, metadata: _NSDictionary | null): _HKWorkout;
    /**
     * @method workoutWithActivityType:startDate:endDate:workoutEvents:totalEnergyBurned:totalDistance:totalSwimmingStrokeCount:device:metadata: @discussion If the optional total parameters are specified, matching samples that add up to the calculated total quantities should be associated with this workout using addSamples:toWorkout:completion: in HKHealthStore. @param workoutActivityType The activity type of the workout @param startDate The point in time that the workout was started @param endDate The point in time that the workout was ended @param workoutEvents An array of HKWorkoutEvents. The workout's duration is derived from these events. (Optional) @param totalEnergyBurned The amount of energy that was burned during the workout. (Optional) @param totalDistance The total distance that was traveled during the workout. (Optional) @param totalSwimmingStrokeCount The total count of swimming strokes that was accumulated during the workout. (Optional) @param device The HKDevice associated with the workout. (Optional) @param metadata Metadata for the workout. (Optional)
     */
    static workoutWithActivityType$startDate$endDate$workoutEvents$totalEnergyBurned$totalDistance$totalSwimmingStrokeCount$device$metadata$(workoutActivityType: HKWorkoutActivityType, startDate: _NSDate, endDate: _NSDate, workoutEvents: _NSArray | null, totalEnergyBurned: _HKQuantity | null, totalDistance: _HKQuantity | null, totalSwimmingStrokeCount: _HKQuantity | null, device: _HKDevice | null, metadata: _NSDictionary | null): _HKWorkout;
    /**
     * @method workoutWithActivityType:startDate:endDate:workoutEvents:totalEnergyBurned:totalDistance:totalFlightsClimbed:device:metadata: @discussion If the optional total parameters are specified, matching samples that add up to the calculated total quantities should be associated with this workout using addSamples:toWorkout:completion: in HKHealthStore. @param workoutActivityType The activity type of the workout @param startDate The point in time that the workout was started @param endDate The point in time that the workout was ended @param workoutEvents An array of HKWorkoutEvents. The workout's duration is derived from these events. (Optional) @param totalEnergyBurned The amount of energy that was burned during the workout. (Optional) @param totalDistance The total distance that was traveled during the workout. (Optional) @param totalFlightsClimbed The total count of flights climbed that was accumulated during the workout. (Optional) @param device The HKDevice associated with the workout. (Optional) @param metadata Metadata for the workout. (Optional)
     */
    static workoutWithActivityType$startDate$endDate$workoutEvents$totalEnergyBurned$totalDistance$totalFlightsClimbed$device$metadata$(workoutActivityType: HKWorkoutActivityType, startDate: _NSDate, endDate: _NSDate, workoutEvents: _NSArray | null, totalEnergyBurned: _HKQuantity | null, totalDistance: _HKQuantity | null, totalFlightsClimbed: _HKQuantity | null, device: _HKDevice | null, metadata: _NSDictionary | null): _HKWorkout;
    /**
     * @method statisticsForType: @discussion Returns an HKStatistics object containing the statistics for all the samples of the given type that have been added to the workout. If there are no samples of the given type then nil is returned. @param quantityType The quantity type to gather statistics about.
     */
    statisticsForType$(quantityType: _HKQuantityType): _HKStatistics | null;
    /**
     * @property workoutActivityType @abstract Represents the activity that the user was performing during a workout
     */
    workoutActivityType(): HKWorkoutActivityType;
    /**
     * @property workoutEvents @abstract An array of HKWorkoutEvents that occurred during a workout. @discussion These events will be ordered by date in ascending order. All events must take place between the start date and end date of the workout. The first workout event should never be a resume event because it is assumed that the workout begins in a running state.
     */
    workoutEvents(): _NSArray | null;
    /**
     * @property workoutActivities @abstract An array of HKWorkoutActivities that were performed during a workout. @discussion These activities will be ordered by date in ascending order. All activities must take place between the start date and end date of the workout.
     */
    workoutActivities(): _NSArray;
    /**
     * @property duration @abstract The length of time that a workout was recording @discussion The duration is derived from the start and end dates of the workout and takes into account periods that the workout was paused. Periods that the workout was paused are based off of the workoutEvents property.
     */
    duration(): number;
    /**
     * @property totalEnergyBurned @abstract The amount of energy that was burned during a workout @discussion This metric should represent the total active energy burned during the course of the workout. It should be a quantity with a unit representing energy.
     * @deprecated Use statisticsForType: passing the HKQuantityType for HKQuantityTypeIdentifierActiveEnergyBurned
     */
    totalEnergyBurned(): _HKQuantity | null;
    /**
     * @property totalDistance @abstract The total distance that was traveled during a workout @discussion This metric should represent the total distance traveled during the course of the workout. It should be a quantity with a unit representing length.
     * @deprecated Use statisticsForType: passing the HKQuantityType for the desired distance type
     */
    totalDistance(): _HKQuantity | null;
    /**
     * @property totalSwimmingStrokeCount @abstract The total count of swimming strokes that was accumulated during a workout @discussion This metric should represent the total count of swimming strokes accumulated during the course of the workout. It should be a quantity with a unit representing count.
     * @deprecated Use statisticsForType: passing the HKQuantityType for HKQuantityTypeIdentifierSwimmingStrokeCount
     */
    totalSwimmingStrokeCount(): _HKQuantity | null;
    /**
     * @property totalFlightsClimbed @abstract The total count of flights climbed during a workout @discussion This metric should represent the total count of flights accumulated during the course of the workout. It should be a quantity with a unit representing count.
     * @deprecated Use statisticsForType: passing the HKQuantityType for HKQuantityTypeIdentifierFlightClimbed
     */
    totalFlightsClimbed(): _HKQuantity | null;
    /**
     * @property allStatistics @abstract A dictionary of statistics per quantity type during the workout @discussion This dictionary will contain HKStatistics objects containing the statistics by quantity sample type for all of the samples that have been added to the workout.
     */
    allStatistics(): _NSDictionary;
}
