import { NamedNode, Node } from './Node'; import { SortedMap } from '../util/SortedMap'; import { Index } from './indexes/Index'; /** * * @param {Object.>} indexes * @param {Object.} indexSet * @constructor */ export declare class IndexMap { private indexes_; private indexSet_; /** * The default IndexMap for nodes without a priority * @type {!IndexMap} * @const */ static readonly Default: IndexMap; constructor(indexes_: { [k: string]: SortedMap | object; }, indexSet_: { [k: string]: Index; }); /** * * @param {!string} indexKey * @return {?SortedMap.} */ get(indexKey: string): SortedMap | null; /** * @param {!Index} indexDefinition * @return {boolean} */ hasIndex(indexDefinition: Index): boolean; /** * @param {!Index} indexDefinition * @param {!SortedMap.} existingChildren * @return {!IndexMap} */ addIndex(indexDefinition: Index, existingChildren: SortedMap): IndexMap; /** * Ensure that this node is properly tracked in any indexes that we're maintaining * @param {!NamedNode} namedNode * @param {!SortedMap.} existingChildren * @return {!IndexMap} */ addToIndexes(namedNode: NamedNode, existingChildren: SortedMap): IndexMap; /** * Create a new IndexMap instance with the given value removed * @param {!NamedNode} namedNode * @param {!SortedMap.} existingChildren * @return {!IndexMap} */ removeFromIndexes(namedNode: NamedNode, existingChildren: SortedMap): IndexMap; }