import type { ColumnModel } from '../columns/columnModel';
import type { VisibleColsService } from '../columns/visibleColsService';
import type { BeanCollection } from '../context/context';
import type { ColumnPinnedType } from '../interfaces/iColumn';
import type { HeaderPosition } from '../interfaces/iHeaderPosition';
import type { AbstractHeaderCellCtrl } from './cells/abstractCell/abstractHeaderCellCtrl';
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function getHeaderRowCount(colModel: ColumnModel): number;
export declare function getFocusHeaderRowCount(beans: BeanCollection): number;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function getAriaHeaderRowCount(beans: BeanCollection): number;
export declare function getGroupRowsHeight(beans: BeanCollection): number[];
export declare function getColumnHeaderRowHeight(beans: BeanCollection): number;
export declare function getHeaderHeight(beans: BeanCollection): number;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function getFloatingFiltersHeight(beans: BeanCollection): number;
export declare function isHeaderPositionEqual(headerPosA: HeaderPosition, headerPosB: HeaderPosition): boolean;
export declare function isHeaderPosition(position: unknown): position is HeaderPosition;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export interface PinnedSectionWidths {
    leftWidth: number;
    centerWidth: number;
    rightWidth: number;
}
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function getPinnedSectionWidths(visibleCols: VisibleColsService, isPrint: boolean): PinnedSectionWidths;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export interface PinnedSectionElements {
    ePinnedLeft: HTMLElement;
    eScrolling: HTMLElement;
    ePinnedRight: HTMLElement;
}
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export interface PinnedSectionWidthsCache {
    pinnedLeftWidth: number | undefined;
    centerWidth: number | undefined;
    pinnedRightWidth: number | undefined;
}
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function updatePinnedSectionWidths(visibleCols: VisibleColsService, isPrint: boolean, elements: PinnedSectionElements, cache: PinnedSectionWidthsCache): void;
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export interface PinnedSections<T> {
    left: T[];
    center: T[];
    right: T[];
}
export declare function compareCtrlsByLeft(a: AbstractHeaderCellCtrl, b: AbstractHeaderCellCtrl): number;
export declare function sortCtrlsByPinnedThenLeft(ctrls: AbstractHeaderCellCtrl[]): AbstractHeaderCellCtrl[];
/** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */
export declare function partitionByPinned<T>(items: T[], getPinned: (item: T) => ColumnPinnedType): PinnedSections<T>;
