import { Scalar } from './common'; import AugmentedObjectManager, { AugmentedType } from './manager'; import { LWWRegisterElement, IJsonPayloadType } from './lwwreg'; import PackedBuffer from '../thunk/packed'; declare class MyType implements AugmentedType, IJsonPayloadType { readonly name = "max"; isNativeTypeCompatible(x: unknown): x is MaxScalar; createFromExisting(mgr: AugmentedObjectManager, ser: PackedBuffer | MaxElement): MaxElement; createFromNative(mgr: AugmentedObjectManager, x: MaxScalar): MaxElement; writePayload(buf: PackedBuffer, x: Scalar): void; readPayload(buf: PackedBuffer): Scalar; readonly initialPayload: null; } declare const MY_TYPE: MyType; export default MY_TYPE; /** * An element that keeps the maximum value of a Scalar. */ export declare class MaxElement extends LWWRegisterElement { get type(): MyType; set(x: unknown): boolean; synchronize(src: this): void; } /** * The way to initialize a new Max scalar, is to call this function and add it to a collection. * It will "melt away" immediately, appearing like a normal JavaScript Scalar which can only be increased. */ export declare class MaxScalar { readonly initialValue: Scalar; constructor(initialValue?: Scalar); }