import '../../assert/js/assert.js';
import '../../globals.js';
import VibrationManageriOS from './VibrationManageriOS.js';
export type ContinuousPatternVibrationControllerOptions = {
    repeat?: boolean;
    sharpness?: 1;
    intensity?: 1;
    activePattern?: number[];
};
declare class ContinuousPatternVibrationController {
    private activePattern;
    private repeat;
    private intensity;
    private sharpness;
    private readonly vibrationManageriOS;
    private patternIndex;
    private patternValue;
    private valueTime;
    private runningPattern;
    private pendingPattern;
    constructor(vibrationManageriOS: VibrationManageriOS, providedOptions: ContinuousPatternVibrationControllerOptions);
    /**
     * Step forward in time, updates patterns.
     */
    step(dt: number): void;
    /**
     * Transition from the previous pattern to the next pattern, which will start to play when start() is called.
     */
    setNewActivePattern(pattern: number[]): void;
    /**
     * Set the new pattern for the controller. If we are running, this will be the pending pattern
     * which we will request at the end of the current pattern to avoid stutter during rapid changes.
     * If a pattern is not running, this will be set as the active pattern right away, and can begin
     * ass soon as start() is called.
     */
    setPattern(pattern: number[]): void;
    /**
     * Set the intensity for the vibration pattern, for both the active and pending patterns.
     */
    setIntensity(intensity: number): void;
    /**
     * Set the sharpness for the vibration pattern, for both the active and pending patterns.
     */
    setSharpness(sharpness: number): void;
    /**
     * Set whether or not the active pattern will repeat.
     */
    setRepeat(repeat: boolean): void;
    /**
     * Start vibrating with the active pattern. Calling this will reset where we are in the active vibration pattern.
     */
    start(): void;
    /**
     * Stop all vibration and play of the active pattern if we are running.
     */
    stop(): void;
    /**
     * Reset the active pattern, and where we are in its playthrough.
     */
    resetPattern(): void;
}
export default ContinuousPatternVibrationController;
//# sourceMappingURL=ContinuousPatternVibrationController.d.ts.map