import type { IndexMap } from '../maps/indexMap'; /** * Collection of index maps having unique names. It allow us to perform bulk operations such as init, remove, insert on all index maps that have been registered in the collection. */ export declare class MapCollection { /** * Internal storage map for local hook callbacks, keyed by hook name. */ _localHooks: Record; /** * Registers a callback function for the given local hook name on this collection. */ addLocalHook: (key: string, callback: Function) => this; /** * Triggers all callbacks registered under the given local hook name across this collection. */ runLocalHooks: (key: string, ...args: unknown[]) => void; /** * Collection of index maps. * * @type {Map} */ collection: Map; /** * Register custom index map. * * @param {string} uniqueName Unique name of the index map. * @param {IndexMap} indexMap Index map containing miscellaneous (i.e. Meta data, indexes sequence), updated after remove and insert data actions. */ register(uniqueName: string, indexMap: IndexMap): void; /** * Unregister custom index map. * * @param {string} name Name of the index map. */ unregister(name: string): void; /** * Unregisters and destroys all collected index map instances. */ unregisterAll(): void; /** * Get index map for the provided name. * * @param {string} [name] Name of the index map. * @returns {Array|IndexMap} */ get(name?: string): IndexMap | IndexMap[] | undefined; /** * Get collection size. * * @returns {number} */ getLength(): number; /** * Remove some indexes and corresponding mappings and update values of the others within all collection's index maps. * * @private * @param {Array} removedIndexes List of removed indexes. */ removeFromEvery(removedIndexes: number[]): void; /** * Insert new indexes and corresponding mapping and update values of the others all collection's index maps. * * @private * @param {number} insertionIndex Position inside the actual list. * @param {Array} insertedIndexes List of inserted indexes. */ insertToEvery(insertionIndex: number, insertedIndexes: number[]): void; /** * Set default values to index maps within collection. * * @param {number} length Destination length for all stored maps. */ initEvery(length: number): void; } /** * @returns {number} */ export declare function getRegisteredMapsCounter(): number;