export interface KeyedArray { key(index: number): K; push(value: V): number; swap(a: number, b: number): void; insert(index: number, value: V): void; remove(index: number): V | undefined; splice(index: number, count?: number): V[]; splice(index: number, count: number, ...items: V[]): V[]; } /** @deprecated use `KeyedArray` */ export type KeyedArray2 = KeyedArray; export declare class SimpleKeyedArray implements KeyedArray { protected readonly array: T[]; protected readonly nextKey: () => K; protected changesPropagator: number; protected keys: K[]; constructor(array: T[], nextKey: () => K); key(index: number): K; push(value: T): number; swap(a: number, b: number): void; insert(index: number, value: T): void; remove(index: number): T | undefined; splice(start: number, count: number, ...items: T[]): T[]; }