import { ElementRef, OnDestroy, OnInit } from '@angular/core';
import * as i0 from "@angular/core";
/**
 * Class that represents a container of columns: super class of both the table
 * header and of the column (which may have sub-columns as children).
 */
export declare abstract class TableColumnContainer implements OnInit, OnDestroy {
    protected parentTableColumnContainer: TableColumnContainer | null;
    protected elementRef: ElementRef;
    private _childrenColumns;
    constructor(parentTableColumnContainer: TableColumnContainer | null, elementRef: ElementRef);
    /**
     * List of column controllers that are direct children of this table column
     * container.
     * @returns List of column children.
     */
    get childrenColumns(): TableColumnContainer[];
    /**
     * Height of a column container (height of the tree represented by the column
     * container as root, and its columns as children).
     * @returns Height of the column container.
     */
    protected get height(): number;
    /**
     * Width of a column container (width of the tree represented by the column
     * container as root, and its columns as children).
     * @returns Width of the column container.
     */
    protected get width(): number;
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Index of the column's element in the parent container's element. Used to
     * make sure that we're inserting columns in the order declared in the HTML
     * file (needed when conditionally rendering columns).
     * @param column Column for which to get index.
     * @returns Index of column in parent container's element.
     */
    private columnIndexInParentEl;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableColumnContainer, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TableColumnContainer, never, never, {}, {}, never>;
}
