import { Duration } from "@zwave-js/core";
import { type Timer } from "@zwave-js/shared";
export interface MockTransition {
    startValue: number;
    targetValue: number;
    startTime: number;
    durationMs: number;
    supervised: boolean;
    timer: Timer;
    onAbort?: () => void | Promise<void>;
}
/** Computes the interpolated current value from a running transition. */
export declare function getTransitionCurrentValue(transition: MockTransition): number;
/** Returns the remaining duration of a running transition. */
export declare function getTransitionRemainingDuration(transition: MockTransition): Duration;
/**
 * Stops a running transition and returns the interpolated value at
 * the time of stopping.
 */
export declare function stopTransition(transition: MockTransition): number;
/**
 * Starts a value transition with proportional duration based on distance.
 * Returns the new {@link MockTransition}, or `undefined` when the
 * transition completes instantly (travelTime is 0 or current equals target).
 */
export declare function startTransition(options: {
    currentValue: number;
    targetValue: number;
    duration: number;
    supervised: boolean;
    onComplete: () => void | Promise<void>;
    onAbort?: () => void | Promise<void>;
}): MockTransition | undefined;
//# sourceMappingURL=MockTransition.d.ts.map