vasille
Version:
The same framework which is designed to build bulletproof frontends (core library).
37 lines (36 loc) • 1.01 kB
TypeScript
import { Reactive } from "../core/core.js";
import { Listener } from "./listener.js";
import { ListenableModel } from "./model.js";
/**
* A `Map` based memory
* @class MapModel
* @extends Map
* @implements ListenableModel
*/
export declare class MapModel<K, T> extends Map<K, T> implements ListenableModel<K, T> {
listener: Listener<T, K>;
/**
* Constructs a map model
* @param map {[*, *][]} input data
* @param ctx lifetime context
*/
constructor(map?: [K, T][], ctx?: Reactive);
/**
* Calls `Map.clear` and notify about changes
*/
clear(): void;
/**
* Calls `Map.delete` and notify abut changes
* @param key {*} key
* @return {boolean} true if removed something, otherwise false
*/
delete(key: K): boolean;
/**
* Calls `Map.set` and notify abut changes
* @param key {*} key
* @param value {*} value
* @return {MapModel} a pointer to this
*/
set(key: K, value: T): this;
destroy(): void;
}