import { NodesPool } from '../utils/nodesPool'; import type { TableRenderer } from './table'; /** * Base renderer class, abstract logic for specialized renderers. * * @class BaseRenderer */ export declare class BaseRenderer { /** * Factory for newly created DOM elements. * * @type {NodesPool|null} */ nodesPool: NodesPool | null; /** * Node type which the renderer will manage while building the table (eg. 'TD', 'TR', 'TH'). * * @type {string} */ nodeType: string | null; /** * The root node to which newly created elements will be inserted. * * @type {HTMLElement} */ rootNode: HTMLElement; /** * The instance of the Table class, a wrapper for all renderers and holder for properties describe table state. * * @type {TableRenderer} */ table: TableRenderer; /** * Counter of nodes already added. * * @type {number} */ renderedNodes: number; /** * Creates a new BaseRenderer instance. * * @param {string | null} nodeType - The node type which the renderer will manage while building the table (eg. 'TD', 'TR', 'TH'), or null. * @param {HTMLElement} rootNode - The root node to which newly created elements will be inserted. */ constructor(nodeType: string | null, rootNode?: HTMLElement); /** * Sets the table renderer instance to the current renderer. * * @param {TableRenderer} table The TableRenderer instance. */ setTable(table: TableRenderer): void; /** * Renders the contents to the elements. */ render(): void; }