import '../../../../assert/js/assert.js';
import '../../../../globals.js';
/**
 * Per-node information required to track what PDOM Displays our Node is visible under. A PDOM display is a Display that
 * is marked true with the `accessibility` option, and thus creates and manages a ParallelDOM (see ParallelDOM and
 * general scenery accessibility doc for more details). Acts like a multimap
 * (duplicates allowed) to indicate how many times we appear in a pdom display.
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import { Display, Node } from '../../imports.js';
export default class PDOMDisplaysInfo {
    private readonly node;
    readonly pdomDisplays: Display[];
    /**
     * Tracks pdom display information for our given node.
     * (scenery-internal)
     */
    constructor(node: Node);
    /**
     * Called when the node is added as a child to this node AND the node's subtree contains pdom content. (scenery-internal)
     */
    onAddChild(node: Node): void;
    /**
     * Called when the node is removed as a child from this node AND the node's subtree contains pdom content. (scenery-internal)
     */
    onRemoveChild(node: Node): void;
    /**
     * Called when our summary bitmask changes (scenery-internal)
     */
    onSummaryChange(oldBitmask: number, newBitmask: number): void;
    /**
     * Called when our visibility changes. (scenery-internal)
     */
    onVisibilityChange(visible: boolean): void;
    /**
     * Called when our pdomVisibility changes. (scenery-internal)
     */
    onPDOMVisibilityChange(visible: boolean): void;
    /**
     * Called when we have a rooted display added to this node. (scenery-internal)
     */
    onAddedRootedDisplay(display: Display): void;
    /**
     * Called when we have a rooted display removed from this node. (scenery-internal)
     */
    onRemovedRootedDisplay(display: Display): void;
    /**
     * Returns whether we can have pdomDisplays specified in our array. (scenery-internal)
     */
    canHavePDOMDisplays(): boolean;
    /**
     * Adds all of our pdom displays to our array (and propagates).
     */
    private addAllPDOMDisplays;
    /**
     * Removes all of our pdom displays from our array (and propagates).
     */
    private removeAllPDOMDisplays;
    /**
     * Adds a list of pdom displays to our internal list. See pdomDisplays documentation.
     */
    private addPDOMDisplays;
    /**
     * Removes a list of pdom displays from our internal list. See pdomDisplays documentation.
     */
    private removePDOMDisplays;
}
//# sourceMappingURL=PDOMDisplaysInfo.d.ts.map