"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
Object.defineProperty(exports, "BaseRenderer", {
    enumerable: true,
    get: function() {
        return BaseRenderer;
    }
});
const _nodesPool = require("../utils/nodesPool");
class BaseRenderer {
    /**
   * Sets the table renderer instance to the current renderer.
   *
   * @param {TableRenderer} table The TableRenderer instance.
   */ setTable(table) {
        if (this.nodesPool) {
            this.nodesPool.setRootDocument(table.rootDocument);
        }
        this.table = table;
    }
    /**
   * Renders the contents to the elements.
   */ render() {}
    constructor(nodeType, rootNode){
        /**
   * Factory for newly created DOM elements.
   *
   * @type {NodesPool|null}
   */ this.nodesPool = null;
        /**
   * The instance of the Table class, a wrapper for all renderers and holder for properties describe table state.
   *
   * @type {TableRenderer}
   */ this.table = null;
        /**
   * Counter of nodes already added.
   *
   * @type {number}
   */ this.renderedNodes = 0;
        this.nodesPool = typeof nodeType === 'string' ? new _nodesPool.NodesPool(nodeType) : null;
        this.nodeType = nodeType;
        this.rootNode = rootNode;
    }
}
