export declare function parseXml(src: string): Document; export declare function nodeIsNonShadowStatementOrValue(node: Element): boolean; export declare function getAncestor(target: Element, test: (node: Element) => boolean): Element | null; /** * Scans a XML document for start blocks. Returns a list of the blocks to start generating from. * This will mutate the tree to separate the start node from the tree. * @param root The XML document where the start nodes are */ export declare function findStartNodes(root: XMLDocument): HTMLElement[]; export declare enum DiffResultType { NODE = 0, INNER_TEXT = 1, EQUAL = 2 } export interface INodeDiffResult { type: DiffResultType.NODE; from: HTMLElement | null; to: HTMLElement | null; } export interface IInnerTextDiffResult { type: DiffResultType.INNER_TEXT; from: string | null; to: string | null; aNode: HTMLElement; bNode: HTMLElement; } export interface IEqualDiffResult { type: DiffResultType.EQUAL; } export declare type IDiffResult = INodeDiffResult | IInnerTextDiffResult | IEqualDiffResult; /** * Compares two blockly DOM tree and returns the first difference * @param treeA A Blockly tree to compare from * @param treeB A Blockly tree to compare to */ export declare function findFirstTreeDiff(treeA: HTMLElement, treeB: HTMLElement): IDiffResult; export declare function getSelectorForNode(node: HTMLElement, limit: HTMLElement): string;