import { RenderHeaderColumn } from '../context/TableRenderContext';
import { TableViewHeader } from '../model/tableView.types';
import { TableRowData, TableSortDirection } from '../Table.types';
type UseResolvedRenderHeaderProps<RowType extends TableRowData> = {
    renderHeaderColumns: RenderHeaderColumn<RowType>[];
    resolvedRenderColumns: RenderHeaderColumn<RowType>[];
    sortBy?: string | string[];
    sortDirection?: TableSortDirection;
};
/**
 * Builds the normalized header layout from registered header cells and the
 * already-resolved data columns.
 *
 * `useResolvedRenderColumns(...)` decides which columns actually exist after
 * reorder/resize behavior. This hook takes that flat column model plus the
 * registered header cells and computes the final header grid:
 * - row count
 * - column start positions
 * - row/column spans
 * - sortable state for the active sort key
 * - `source` metadata for downstream header/cell consumers
 *
 * The result is a stable header view model that `TableHeader` can render
 * without repeating placement logic.
 */
declare const useResolvedRenderHeader: <RowType extends TableRowData>(props: UseResolvedRenderHeaderProps<RowType>) => TableViewHeader<RowType> | undefined;
export default useResolvedRenderHeader;
