Creates a BufferedCountBeacon that collects and buffers a specified number
of values. Once the count threshold is reached, the beacon's value is updated
with the list of collected values and the buffer is reset.
Creates a BufferedTimeBeacon that collects values over a specified time duration.
Once the time duration elapses, the beacon's value is updated with the list of
collected values and the buffer is reset for the next interval.
Creates a DerivedBeacon whose value is derived from a computation function.
This beacon will recompute its value everytime one of it's dependencies change.
Creates a DerivedBeacon whose value is derived from an asynchronous computation.
This beacon will recompute its value every time one of its dependencies change.
The result is wrapped in an AsyncValue, which can be in one of three states: loading, data, or error.
Executes a batched update which allows multiple updates to be batched into a single update.
This can be used to optimize performance by reducing the number of update notifications.
Returns a ReadableBeacon and a function that allows writing to the beacon.
This is useful for creating a beacon that's readable by the public,
but writable only by the owner.
Creates a ThrottledBeacon with an initial value and a throttle duration.
This beacon limits the rate of updates to its value based on the duration.
Updates that occur faster than the throttle duration are ignored.
Creates an UndoRedoBeacon with an initial value and an optional history limit.
This beacon allows undoing and redoing changes to its value, up to the specified
number of past states.