import { type Inspectable } from "./Inspectable.js"; import type { Pipeable } from "./Pipeable.js"; declare const TypeId: unique symbol; /** * @since 2.0.0 * @category symbol */ export type TypeId = typeof TypeId; /** * @since 2.0.0 * @category models */ export interface MutableRef extends Pipeable, Inspectable { readonly [TypeId]: TypeId; current: T; } /** * @since 2.0.0 * @category constructors */ export declare const make: (value: T) => MutableRef; /** * @since 2.0.0 * @category general */ export declare const compareAndSet: { /** * @since 2.0.0 * @category general */ (oldValue: T, newValue: T): (self: MutableRef) => boolean; /** * @since 2.0.0 * @category general */ (self: MutableRef, oldValue: T, newValue: T): boolean; }; /** * @since 2.0.0 * @category numeric */ export declare const decrement: (self: MutableRef) => MutableRef; /** * @since 2.0.0 * @category numeric */ export declare const decrementAndGet: (self: MutableRef) => number; /** * @since 2.0.0 * @category general */ export declare const get: (self: MutableRef) => T; /** * @since 2.0.0 * @category numeric */ export declare const getAndDecrement: (self: MutableRef) => number; /** * @since 2.0.0 * @category numeric */ export declare const getAndIncrement: (self: MutableRef) => number; /** * @since 2.0.0 * @category general */ export declare const getAndSet: { /** * @since 2.0.0 * @category general */ (value: T): (self: MutableRef) => T; /** * @since 2.0.0 * @category general */ (self: MutableRef, value: T): T; }; /** * @since 2.0.0 * @category general */ export declare const getAndUpdate: { /** * @since 2.0.0 * @category general */ (f: (value: T) => T): (self: MutableRef) => T; /** * @since 2.0.0 * @category general */ (self: MutableRef, f: (value: T) => T): T; }; /** * @since 2.0.0 * @category numeric */ export declare const increment: (self: MutableRef) => MutableRef; /** * @since 2.0.0 * @category numeric */ export declare const incrementAndGet: (self: MutableRef) => number; /** * @since 2.0.0 * @category general */ export declare const set: { /** * @since 2.0.0 * @category general */ (value: T): (self: MutableRef) => MutableRef; /** * @since 2.0.0 * @category general */ (self: MutableRef, value: T): MutableRef; }; /** * @since 2.0.0 * @category general */ export declare const setAndGet: { /** * @since 2.0.0 * @category general */ (value: T): (self: MutableRef) => T; /** * @since 2.0.0 * @category general */ (self: MutableRef, value: T): T; }; /** * @since 2.0.0 * @category general */ export declare const update: { /** * @since 2.0.0 * @category general */ (f: (value: T) => T): (self: MutableRef) => MutableRef; /** * @since 2.0.0 * @category general */ (self: MutableRef, f: (value: T) => T): MutableRef; }; /** * @since 2.0.0 * @category general */ export declare const updateAndGet: { /** * @since 2.0.0 * @category general */ (f: (value: T) => T): (self: MutableRef) => T; /** * @since 2.0.0 * @category general */ (self: MutableRef, f: (value: T) => T): T; }; /** * @since 2.0.0 * @category boolean */ export declare const toggle: (self: MutableRef) => MutableRef; export {}; //# sourceMappingURL=MutableRef.d.ts.map