import type { NobjcObject } from "objc-js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _CHHapticPatternPlayer } from "./CHHapticPatternPlayer.js";
export interface _CHHapticAdvancedPatternPlayer extends _CHHapticPatternPlayer {
    /**
     * @method pauseAtTime:error @abstract Pause playback of the pattern at the specified time (see `CHHapticEngine(currentTime)`). @discussion If 'time' is set to `CHHapticTimeImmediate`, the pattern will be paused immediately.
     */
    pauseAtTime$error$?(time: number, outError: NobjcObject | null): boolean;
    /**
     * @method resumeAtTime:error @abstract Resume playback on a previously-paused player at the specified time (see `CHHapticEngine(currentTime)`). @discussion If 'time' is set to `CHHapticTimeImmediate`, the pattern is resumed as soon as possible. Playback will resume at the time offset in the pattern at which it was paused.
     */
    resumeAtTime$error$?(time: number, outError: NobjcObject | null): boolean;
    /**
     * @method seekToOffset:error @abstract Set the playback position on an active player to the specified offset time. @discussion If 'offsetTime' is set to 0.0, the pattern will start from the beginning. If set to >= the duration of the pattern, playback will terminate as soon as possible unless the player is looped, in which case playback will start at the beginning of the loop.
     */
    seekToOffset$error$?(offsetTime: number, outError: NobjcObject | null): boolean;
    /**
     * @property loopEnabled @abstract When set to YES, the player will loop back to the beginning of the pattern whenever playback reaches the `loopEnd` time.
     */
    loopEnabled?(): boolean;
    setLoopEnabled$?(value: boolean): void;
    /**
     * @property loopEnd @abstract The time in seconds at which the pattern will loop back if looping is enabled. @discussion If set to 0.0, the loop length will be set to the end of the last event in the pattern.
     */
    loopEnd?(): number;
    setLoopEnd$?(value: number): void;
    /**
     * @property playbackRate @abstract Allows a pattern to be played back at any multiple of its normal rate. The rate can be adjusted at any point before or during pattern playback. @discussion This rate factor scales the relative times of all events and parameters as they are played, as well as the durations of Continuous events and the `loopEnd` time. It does not affect the pitches of the events. Any value greater than 0.0 is valid; all others are ignored.
     */
    playbackRate?(): number;
    setPlaybackRate$?(value: number): void;
    /**
     * @property isMuted @abstract When set to YES, all audio and haptic output will be silenced.
     */
    isMuted?(): boolean;
    setIsMuted$?(value: boolean): void;
    /**
     * @property completionHandler @abstract The block or enclosure that will be called when the player finishes.
     */
    completionHandler?(): (arg0: _NSError) => void;
    setCompletionHandler$?(value: (arg0: _NSError) => void): void;
}
