export default ObservedBoolean;
/**
 * Wrapper around a boolean value that signals change via {@link onChanged} signal.
 *
 * @example
 *  const v = new ObservedBoolean(false);
 *
 *  v.getValue(); // false
 *
 *  v.set(true);
 *
 *  v.getValue(); // true
 *
 * @author Alex Goldring
 * @copyright Company Named Limited (c) 2026
 */
declare class ObservedBoolean extends Boolean {
    /**
     *
     * @param {boolean} [value=false]
     * @constructor
     */
    constructor(value?: boolean);
    /**
     * Signals current value and previously held value. Only fires when the value actually changes.
     * @readonly
     * @type {Signal<boolean,boolean>}
     */
    readonly onChanged: Signal<boolean, boolean>;
    /**
     *
     * @type {boolean}
     * @private
     */
    private __value;
    /**
     *
     * @param {boolean} value
     * @returns {ObservedBoolean}
     */
    set(value: boolean): ObservedBoolean;
    /**
     * Equivalent to {@link set} with `true` argument.
     *
     */
    setTrue(): void;
    /**
     * Equivalent to {@link set} with `false` argument.
     *
     */
    setFalse(): void;
    /**
     *
     * @param {ObservedBoolean} other
     */
    copy(other: ObservedBoolean): void;
    /**
     *
     * @param {ObservedBoolean} other
     * @returns {boolean}
     */
    equals(other: ObservedBoolean): boolean;
    /**
     *
     * @return {number}
     */
    hash(): number;
    /**
     *
     * @param {function(boolean,boolean)} f
     * @param {*} [thisArg]
     * @returns {this}
     */
    process(f: (arg0: boolean, arg1: boolean) => any, thisArg?: any): this;
    /**
     *
     * @returns {boolean}
     */
    getValue(): boolean;
    /**
     * Flip value.
     * If the value is `true` - it becomes false, if it was `false` it becomes `true`
     */
    invert(): void;
    toJSON(): boolean;
    fromJSON(obj: any): void;
    /**
     *
     * @param {BinaryBuffer} buffer
     */
    toBinaryBuffer(buffer: BinaryBuffer): void;
    /**
     *
     * @param {BinaryBuffer} buffer
     */
    fromBinaryBuffer(buffer: BinaryBuffer): void;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isObservedBoolean: boolean;
    /**
     * @deprecated
     * @type {function(): number}
     */
    hashCode: () => number;
}
declare namespace ObservedBoolean {
    let FALSE: ObservedBoolean;
    let TRUE: ObservedBoolean;
}
import Signal from "../events/signal/Signal.js";
//# sourceMappingURL=ObservedBoolean.d.ts.map