import { Node } from "../model/model"; export type NodeId = { node: Node; id?: string; }; export declare class Indexer { private nodes; constructor(nodes: NodeId[]); getId(node: Node): string | undefined; static computeIds(node: Node): Indexer; static computeReferencedIds(node: Node): Indexer; } export interface IdProvider { getId(node: Node): string | undefined; } export declare class SequentialIdProvider implements IdProvider { private counter; constructor(counter?: number); getId(node: Node): string | undefined; } export declare class OnlyReferencedIdProvider implements IdProvider { private root; private idProvider; private referencedElements; constructor(root: Node, idProvider?: IdProvider); getId(node: Node): string | undefined; } export declare const COMPUTE_NODE_IDS_SYMBOL: unique symbol; export declare const COMPUTE_REF_NODE_IDS_SYMBOL: unique symbol;