import type { GroupedHeaderOptions } from '../../Options';
import Cell from '../Cell.js';
import Column from '../Column';
import Row from '../Row';
import TableHeader from './TableHeader.js';
import ColumnToolbar from './ColumnToolbar/ColumnToolbar.js';
/**
 * Represents a cell in the data grid header.
 */
declare class HeaderCell extends Cell {
    /**
     * The HTML element of the header cell content.
     */
    headerContent?: HTMLElement;
    /**
     * The container element of the header cell.
     */
    container?: HTMLDivElement;
    /**
     * List of columns that are subordinated to the header cell.
     */
    readonly columns: Column[];
    /**
     * Content value of the header cell.
     */
    value: string;
    /**
     * The table header that this header cell belongs to.
     */
    tableHeader: TableHeader;
    /**
     * The toolbar of the header cell.
     */
    toolbar?: ColumnToolbar;
    /**
     * Key used by the header row to reuse the cell.
     */
    headerCellKey?: string;
    /**
     * Column resize handle rendered inside this header cell.
     */
    private resizeHandle?;
    /**
     * Constructs a cell in the data grid header.
     *
     * @param row
     * The row of the cell.
     *
     * @param column
     * The column of the cell.
     *
     * @param columnsTree
     * If the cell is a wider than one column, this property contains the
     * structure of the columns that are subordinated to the header cell.
     */
    constructor(row: Row, column?: Column, columnsTree?: GroupedHeaderOptions[]);
    /**
     * Init element.
     */
    init(): HTMLTableCellElement;
    /**
     * Render the cell container.
     */
    render(): Promise<void>;
    /**
     * Returns merged header styles from defaults and current column options.
     */
    private getColumnStyles;
    reflow(): void;
    /**
     * Synchronizes the columns represented by this header cell.
     *
     * @param column
     * The direct column represented by the cell.
     *
     * @param columnsTree
     * The grouped header tree represented by the cell.
     */
    syncColumns(column?: Column, columnsTree?: GroupedHeaderOptions[]): void;
    onKeyDown(e: KeyboardEvent): void;
    onClick(e: MouseEvent): void;
    /**
     * Add sorting option to the column.
     */
    private initColumnSorting;
    /**
     * Check if the cell is part of the last cell in the header.
     */
    isLastColumn(): boolean;
    destroy(): void;
}
export default HeaderCell;
