import { Movement } from "./Movement";
import { ChildListChange } from "./ChildListChange";
import { IStringMap } from "./IStringMap";
import { Summary } from "./Summary";
import { Selector } from "./Selector";
export declare class MutationProjection {
    rootNode: Node;
    mutations: MutationRecord[];
    selectors: Selector[];
    calcReordered: boolean;
    calcOldPreviousSibling: boolean;
    private treeChanges;
    private readonly entered;
    private readonly exited;
    private stayedIn;
    private visited;
    private childListChangeMap;
    private characterDataOnly;
    private matchCache;
    constructor(rootNode: Node, mutations: MutationRecord[], selectors: Selector[], calcReordered: boolean, calcOldPreviousSibling: boolean);
    processMutations(): void;
    visitNode(node: Node, parentReachable: Movement): void;
    ensureHasOldPreviousSiblingIfNeeded(node: Node): void;
    getChanged(summary: Summary, selectors: Selector[], characterDataOnly: boolean): void;
    getOldParentNode(node: Node): Node;
    getOldPreviousSibling(node: Node): Node;
    getOldAttribute(element: Node, attrName: string): string;
    attributeChangedNodes(includeAttributes: string[]): IStringMap<Element[]>;
    getOldCharacterData(node: Node): string;
    getCharacterDataChanged(): Node[];
    computeMatchabilityChange(selector: Selector, el: Element): Movement;
    matchabilityChange(node: Node): Movement;
    getChildlistChange(el: Element): ChildListChange;
    processChildlistChanges(): void;
    wasReordered(node: Node): boolean;
}
