import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { CMTimeRange } from "../structs/CMTimeRange.js";
import type { SNTimeDurationConstraintType } from "./SNTimeDurationConstraintType.js";
export declare class _SNTimeDurationConstraint extends _NSObject {
    static alloc(): _SNTimeDurationConstraint;
    static new(): _SNTimeDurationConstraint;
    init(): _SNTimeDurationConstraint;
    /**
     * Initializes an enumerated-type constraint. - Parameter enumeratedDurations: A discrete set of duration values (represented as CMTime values boxed in NSValue instances) permitted by this constraint. - Returns: An instance whose `type` is `SNTimeDurationConstraintTypeEnumerated`, and which constrains duration values to the provided set of discrete values.
     */
    initWithEnumeratedDurations$(enumeratedDurations: _NSArray): _SNTimeDurationConstraint;
    /**
     * Initializes a range-type constraint. - Parameter durationRange: A continuous range of duration values (represented as CMTime values) permitted by this constraint. - Returns: An instance whose `type` is `SNTimeDurationConstraintTypeRange`, and which constrains durations values to the provided range.
     */
    initWithDurationRange$(durationRange: CMTimeRange): _SNTimeDurationConstraint;
    /**
     * The time constraint type. The value of this property dictates whether or not other properties associated with this class can be validly accessed. Please refer to the documentation of other individual properties to understand their relationship to this one. This property is always valid to access.
     */
    type(): SNTimeDurationConstraintType;
    /**
     * If the constraint type is enumerated, then the set of discrete allowable time durations. - Returns: If the constraint type is enumerated, an array of CMTime structures (boxed in NSValue instances) representing the set of allowable time durations. The durations will always be provided sorted in order of ascending time. If the constraint type is not enumerated, an empty array will be returned. The `type` property should be queried before this property is accessed. This property will only yield meaningful values if the constraint type is considered to be 'enumerated'. The constraint type is considered to be 'enumerated' if the `type` property is equal to `SNTimeDurationConstraintTypeEnumerated`.
     */
    enumeratedDurations(): _NSArray;
    /**
     * If the constraint type is range, then the range of allowable window durations. - Returns: If the constraint type is range, a CMTimeRange representing the range of allowable window durations. If the constraint type is not range, `kCMTimeRangeInvalid`. The `type` property should be queried before this property is accessed. This property will only yield meaningful values if the constraint type is considered to be 'range'. The constraint type is considered to be 'range' if the `type` property is equal to `SNTimeDurationConstraintTypeRange`.
     */
    durationRange(): CMTimeRange;
}
