import { GraphicNode } from './graphicNode';
import { PresentationNode } from './presentationNode';
/**
 * The view class that replicates a subtree of the graphic document and prepares it for rendering.
 */
export declare class View extends GraphicNode {
    /**
     * The root of the subtree to be rendered.
     */
    protected anchorNode: GraphicNode | null;
    /**
     * Callback to remove subscriptions when the source node changes.
     */
    private anchorNodeSubscriptionRemover;
    /**
     * The representation of the view and root of the replicated tree.
     */
    viewPresentationNode: PresentationNode | null;
    /**
     * Constructor.
     */
    constructor();
    /**
     * Set the anchor node of the view, that is the root of the subtree to be rendered.
     * @param anchorNode The anchor node.
     */
    mountNode(anchorNode: GraphicNode): void;
    /**
     * Creates a copy of the graphic document starting from the source node.
     */
    private replicateDocumentTree;
    /**
     * Recursively create copies of all graphic nodes.
     * @param parent The node that will be the parent of the source node's copy.
     * @param sourceNode The graphic node to copy.
     */
    private replicateRecursive;
    /**
     * Remove a previously created presentation tree.
     */
    private destroyDocumentTree;
}
