vasille
Version:
The first Developer eXperience Orientated front-end framework (core library).
56 lines (55 loc) • 1.75 kB
TypeScript
import { Listener } from "./listener.js";
import { ListenableModel } from "./model.js";
/**
* Model based on Array class
* @extends Array
* @implements IModel
*/
export declare class ArrayModel<T> extends Array<T> implements ListenableModel<T, T> {
listener: Listener<T, T>;
passive: boolean;
/**
* @param data {Array} input data
*/
constructor(data?: Array<T> | number);
/**
* Calls Array.fill and notify about changes
* @param value {*} value to fill with
* @param start {?number} begin index
* @param end {?number} end index
*/
fill(value: T, start?: number, end?: number): this;
/**
* Calls Array.pop and notify about changes
* @return {*} removed value
*/
pop(): T | undefined;
/**
* Calls Array.push and notify about changes
* @param items {...*} values to push
* @return {number} new length of array
*/
push(...items: Array<T>): number;
/**
* Calls Array.shift and notify about changed
* @return {*} the shifted value
*/
shift(): T | undefined;
/**
* Calls Array.splice and notify about changed
* @param start {number} start index
* @param deleteCount {?number} delete count
* @param items {...*}
* @return {ArrayModel} a pointer to this
*/
splice(start: number, deleteCount?: number, ...items: Array<T>): ArrayModel<T>;
/**
* Calls Array.unshift and notify about changed
* @param items {...*} values to insert
* @return {number} the length after prepend
*/
unshift(...items: Array<T>): number;
replace(at: number, with_: T): this;
destroy(): void;
}
export declare function proxyArrayModel<T>(arr: ArrayModel<T>): ArrayModel<T>;