/**
 * Wrapper around a scalar value, `Vector1` is used for consistence with {@link Vector2} and {@link Vector3}
 *
 * @author Alex Goldring
 * @copyright Company Named Limited (c) 2025
 */
export class Vector1 extends Number {
    /**
     *
     * @param {Vector1} a
     * @param {Vector1} b
     * @return {number}
     */
    static compare(a: Vector1, b: Vector1): number;
    /**
     *
     * @param {number} [x=0]
     * @constructor
     * @class
     * @property {number} x
     */
    constructor(x?: number);
    x: number;
    /**
     *
     * @type {Signal<number,number>}
     */
    onChanged: Signal<number, number>;
    /**
     *
     * @returns {string}
     */
    toString(): string;
    /**
     * Currently held value
     * @returns {number}
     */
    getValue(): number;
    /**
     * Useful for sorting
     * @param {Vector1} other
     * @returns {number}
     */
    compareTo(other: Vector1): number;
    /**
     *
     * @param {number} x
     * @returns {Vector1}
     */
    set(x: number): Vector1;
    /**
     * Set value without triggering {@link #onChanged} signal
     * @param {number} x
     */
    setSilent(x: number): void;
    /**
     *
     * @return {boolean}
     */
    isZero(): boolean;
    /**
     * Increase value by 1.
     * `value++`
     */
    increment(): void;
    /**
     * Decrease value by 1.
     * `value--`
     */
    decrement(): void;
    /**
     *
     * @param {Number} v
     * @return {Vector1}
     */
    _add(v: number): Vector1;
    /**
     *
     * @param {Vector1|Vector2|Vector3|Vector4} other
     */
    add(other: Vector1 | Vector2 | Vector3 | Vector4): Vector1;
    /**
     *
     * @param {Number} v
     * @return {Vector1}
     */
    _sub(v: number): Vector1;
    /**
     *
     * @param {Vector1} other
     * @returns {Vector1}
     */
    sub(other: Vector1): Vector1;
    /**
     *
     * @param {Vector1} other
     * @returns {Vector1}
     */
    multiply(other: Vector1): Vector1;
    /**
     *
     * @param {number} v
     */
    multiplyScalar(v: number): void;
    /**
     *
     * @param {number} low
     * @param {number} high
     * @returns {Vector1}
     */
    clamp(low: number, high: number): Vector1;
    /**
     * Negate sign of the value, if value is 7, it will become -7 and vice versa
     * Zero is unaffected
     */
    negate(): void;
    /**
     *
     * @param {Vector1|Vector2|Vector3|Vector4} other
     */
    copy(other: Vector1 | Vector2 | Vector3 | Vector4): void;
    /**
     *
     * @returns {Vector1}
     */
    clone(): Vector1;
    /**
     *
     * @param {Vector1} other
     * @returns {boolean}
     */
    equals(other: Vector1): boolean;
    /**
     * @returns {number}
     */
    hash(): number;
    /**
     *
     * @param {function(newValue:number, oldValue:number)} handler
     */
    process(handler: any): void;
    toJSON(): number;
    fromJSON(val: any): void;
    /**
     *
     * @param {number[]} array
     * @param {number} offset
     */
    readFromArray(array: number[], offset?: number): void;
    /**
     *
     * @param {number[]} array
     * @param {number} offset
     */
    writeToArray(array: number[], offset?: number): void;
    asArray(): number[];
    /**
     *
     * @param {BinaryBuffer} buffer
     */
    toBinaryBuffer(buffer: BinaryBuffer): void;
    /**
     *
     * @param {BinaryBuffer} buffer
     */
    fromBinaryBuffer(buffer: BinaryBuffer): void;
    set 0(arg: number);
    get 0(): number;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isVector1: boolean;
    [Symbol.iterator](): Generator<number, void, unknown>;
}
export namespace Vector1 {
    let typeName: string;
    let zero: Vector1;
    let one: Vector1;
}
export default Vector1;
import Signal from "../events/signal/Signal.js";
//# sourceMappingURL=Vector1.d.ts.map