import { CSSProperties } from 'react';
import { TableCardsStyleSettings, TableColumnDefinition, TableRowData, TableStickyReference } from '../Table.types';
export type TableColumnWithArea<RowType extends TableRowData> = {
    column: TableColumnDefinition<RowType>;
    columnIndex: number;
    areaName: string;
};
type UseTableLayoutProps<RowType extends TableRowData> = {
    bodyMaxHeight?: string;
    cardsStyle?: TableCardsStyleSettings;
    columns: TableColumnDefinition<RowType>[];
    hasFooterCells?: boolean;
    rowSeparatorWidth?: number | string;
    showSelectionColumn?: boolean;
    stickyReference?: TableStickyReference;
    style?: CSSProperties;
};
type InternalTableStyle = CSSProperties & {
    '--table-columns'?: string;
    '--table-areas'?: string;
    '--table-cards-min'?: string;
    '--table-cards-max'?: string;
    '--table-column-count'?: string;
    '--table-row-separator-width'?: string;
    '--table-sticky-reference-top'?: string;
    '--table-width'?: string;
};
export declare const useTableLayout: <RowType extends TableRowData>(props: UseTableLayoutProps<RowType>) => {
    columnsWithAreas: TableColumnWithArea<RowType>[];
    handleBodyScroll: (event: import('react').UIEvent<HTMLElement> | undefined) => void;
    hasHorizontalScrollEndOffset: boolean;
    hasHorizontalScrollStartOffset: boolean;
    tableUseOverflow: boolean;
    tableWrapperRef: import('react').MutableRefObject<HTMLDivElement | null>;
    tableFooterRowRef: import('react').RefObject<HTMLDivElement>;
    tableHeadRowRef: import('react').RefObject<HTMLDivElement>;
    wrapperWidth: number | undefined;
    wrapperStyle: InternalTableStyle;
};
export {};
