import { VxTreeView } from './tree.js'; export declare const VX_NODE_REF_SYMBOL: unique symbol; export declare const VX_NODE_COUNTER_SYMBOL: unique symbol; export declare const VX_IGNORE_SYMBOL: unique symbol; export declare const VX_IGNORE_TAGS: string[]; export declare const VX_TAG_PREFERENCE: string[]; export type VxDomNode = Element | Text; export interface VxNode { ref?: string; tagName?: string; children?: VxNode[]; id?: string; classList?: string[]; textContent?: string; hasVisibleArea?: boolean; isInteractive?: boolean; isOutsideViewport?: boolean; isProbeHit?: boolean; isKept?: boolean; attributes?: Record; } export interface VxTreeOptions { frameId?: string; iframeRef?: string; skipImages?: boolean; viewportOnly?: boolean; probeViewport?: boolean; opaqueOverlays?: boolean; unnestDivs?: boolean; /** * When true (default), open shadow roots are traversed after the host’s light DOM children * so the tree matches a flattened view (closed shadow roots are still inaccessible). */ flattenShadowDom?: boolean; } export type VxTransform = (vxNode: VxNode) => VxNode; export declare class VxTreeParser { options: VxTreeOptions; private frameId; private viewport; private vxNodes; private probeElements; private domRefMap; private counter; private usedCounters; constructor(options?: VxTreeOptions); parse(): void; getTree(): VxTreeView; getNodes(): VxNode[]; getDomMap(): Map; private parseNode; private parseElement; private makeElementNode; private pruneRecursive; private collapseSingleChild; private collapsePreferParent; private collapseMerge; private shouldOmit; private isProbeHit; private collectAttributes; private clearRecursive; private nextCounterValue; private collectDomCounters; }