///
import { ReplicatedData, Clock } from '.';
import { Serializable } from '../serializable';
/**
* A Replicated Register data type.
*
* @remarks
*
* A ReplicatedRegister uses a clock to determine which of two concurrent updates should win. The
* last write wins. The clock is represented as a number. The default clock uses the proxies system
* time, custom clocks can supply a custom number to be used. If two clock values are equal, the
* write from the node with the lowest address wins.
*
* @typeParam Value - Type of value stored by the register
*
* @public
*/
export declare class ReplicatedRegister implements ReplicatedData {
private currentValue;
private delta;
/**
* Create a new Replicated Register.
*
* @param value - A value to hold in the register
* @param clock - The clock to use, otherwise default clock
* @param customClockValue - The custom clock value, if using a custom clock
*/
constructor(value: Value, clock?: Clock, customClockValue?: number | Long);
/**
* Get or set the value of this register.
*
* @remarks Sets with the default clock.
*/
get value(): Value;
set value(value: Value);
/**
* Set the value using a custom clock.
*
* @param value - The value to set
* @param clock - The clock, otherwise the default clock
* @param customClockValue - Custom clock value, or ignored if a custom clock isn't specified
*/
setWithClock: (value: Value, clock?: Clock, customClockValue?: number | Long) => ReplicatedRegister;
private resetDelta;
toString: () => string;
}