import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSUUID } from "../Foundation/NSUUID.js";
import type { CMTime } from "../structs/CMTime.js";
export declare class _CMIOExtensionStreamCustomClockConfiguration extends _NSObject {
    static alloc(): _CMIOExtensionStreamCustomClockConfiguration;
    static new(): _CMIOExtensionStreamCustomClockConfiguration;
    init(): _CMIOExtensionStreamCustomClockConfiguration;
    /**
     * @method customClockConfigurationWithName:sourceIdentifier:getTimeCallMinimumInterval:numberOfEventsForRateSmoothing:numberOfAveragesForRateSmoothing: @abstract Return a custom clock configuration instance. @param clockName The name of the clock being specified. @param sourceIdentifier An unique identifier that is used to indicate the entity that is driving the clock. This value is used internally to determine if two custom clocks have the same hardware source, and thus determine whether or not they will drift relative to one another. This parameter is used in the following way: if a device supports multiple active streams that are internally clocked by a common source, then instead of sharing one clock between each stream, a clock per stream can be configured with the sourceIdentifier for each clock set to be the same value. @param getTimeCallMinimumInterval If the clock is queried for its current time more often than this interval, an interpolated value will be returned. @param numberOfEventsForRateSmoothing The number of events to use for rate smoothing; must be > 0. @param numberOfAveragesForRateSmoothing The number of averages used for rate smoothing; if 0, the default smoothing algorithm is used. @result A CMIOExtensionStreamCustomClockConfiguration instance.
     */
    static customClockConfigurationWithClockName$sourceIdentifier$getTimeCallMinimumInterval$numberOfEventsForRateSmoothing$numberOfAveragesForRateSmoothing$(clockName: _NSString, sourceIdentifier: _NSUUID, getTimeCallMinimumInterval: CMTime, numberOfEventsForRateSmoothing: number, numberOfAveragesForRateSmoothing: number): _CMIOExtensionStreamCustomClockConfiguration;
    /**
     * @method initWithName:sourceIdentifier:getTimeCallMinimumInterval:numberOfEventsForRateSmoothing:numberOfAveragesForRateSmoothing: @abstract Initialize a custom clock configuration instance. @param clockName The name of the clock being specified. @param sourceIdentifier An unique identifier that is used to indicate the entity that is driving the clock. This value is used internally to determine if two custom clocks have the same hardware source, and thus determine whether or not they will drift relative to one another. This parameter is used in the following way: if a device supports multiple active streams that are internally clocked by a common source, then instead of sharing one clock between each stream, a clock per stream can be configured with the sourceIdentifier for each clock set to be the same value. @param getTimeCallMinimumInterval If the clock is queried for its current time more often than this interval, an interpolated value will be returned. @param numberOfEventsForRateSmoothing The number of events to use for rate smoothing; must be > 0. @param numberOfAveragesForRateSmoothing The number of averages used for rate smoothing; if 0, the default smoothing algorithm is used. @result A CMIOExtensionStreamCustomClockConfiguration instance.
     */
    initWithClockName$sourceIdentifier$getTimeCallMinimumInterval$numberOfEventsForRateSmoothing$numberOfAveragesForRateSmoothing$(clockName: _NSString, sourceIdentifier: _NSUUID, getTimeCallMinimumInterval: CMTime, numberOfEventsForRateSmoothing: number, numberOfAveragesForRateSmoothing: number): _CMIOExtensionStreamCustomClockConfiguration;
    /** @property clockName @abstract The name of the clock. */
    clockName(): _NSString;
    /**
     * @property sourceIdentifier @abstract The identifier of the entity driving the clock. @discussion An unique identifier that is used to indicate the entity that is driving the clock. This value is used internally to determine if two custom clocks have the same hardware source, and thus determine whether or not they will drift relative to one another. This parameter is used in the following way: if a device supports multiple active streams that are internally clocked by a common source, then instead of sharing one clock between each stream, a clock per stream can be configured with the sourceIdentifier for each clock set to be the same value.
     */
    sourceIdentifier(): _NSUUID;
    /**
     * @property getTimeCallMinimumInterval @abstract If the clock is queried for its current time more often than this interval, an interpolated value will be returned.
     */
    getTimeCallMinimumInterval(): CMTime;
    /**
     * @property numberOfEventsForRateSmoothing @abstract The number of events to use for rate smoothing; will be > 0.
     */
    numberOfEventsForRateSmoothing(): number;
    /**
     * @property numberOfAveragesForRateSmoothing @abstract The number of averages used for rate smoothing; 0 indicates that the default smoothing algorithm is used.
     */
    numberOfAveragesForRateSmoothing(): number;
}
export interface _CMIOExtensionStreamCustomClockConfiguration extends _NSCopying, _NSSecureCoding {
}
