rdesign/frontend/node_modules/@lit/context/development/lib/value-notifier.d.ts

35 lines
1.1 KiB
TypeScript

/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
import { ContextCallback } from './context-request-event.js';
/**
* A disposer function
*/
type Disposer = () => void;
interface CallbackInfo {
disposer: Disposer;
consumerHost: Element;
}
/**
* A simple class which stores a value, and triggers registered callbacks when
* the value is changed via its setter.
*
* An implementor might use other observable patterns such as MobX or Redux to
* get behavior like this. But this is a pretty minimal approach that will
* likely work for a number of use cases.
*/
export declare class ValueNotifier<T> {
protected readonly subscriptions: Map<ContextCallback<T>, CallbackInfo>;
private _value;
get value(): T;
set value(v: T);
setValue(v: T, force?: boolean): void;
constructor(defaultValue?: T);
updateObservers: () => void;
addCallback(callback: ContextCallback<T>, consumerHost: Element, subscribe?: boolean): void;
clearCallbacks(): void;
}
export {};
//# sourceMappingURL=value-notifier.d.ts.map