/**
 * Grid position for a rendered table cell.
 *
 * The position describes the cell's occupied rectangle in table grid coordinates,
 * not just the anchor column where the physical cell starts.
 */
export type TableCellGridPosition = {
    /** Zero-based absolute row index where the cell starts. */
    rowIndex: number;
    /** Number of rows occupied by the cell. Defaults to 1 when omitted or invalid. */
    rowSpan?: number;
    /** Zero-based absolute grid column where the cell starts. */
    gridColumnStart: number;
    /** Number of columns occupied by the cell. Defaults to 1 when omitted or invalid. */
    colSpan?: number;
    /** Total row count in the table. */
    totalRows: number;
    /** Total column count in the table grid. */
    totalCols: number;
};
/**
 * Normalized grid bounds for a rendered table cell.
 *
 * The exclusive end indexes make edge checks straightforward:
 * - `endColExclusive === totalCols` means the cell touches the right table edge
 * - `endRowExclusive === totalRows` means the cell touches the bottom table edge
 */
export type TableCellGridBounds = {
    /** Inclusive starting row index. */
    startRow: number;
    /** Exclusive ending row index. */
    endRowExclusive: number;
    /** Inclusive starting column index. */
    startCol: number;
    /** Exclusive ending column index. */
    endColExclusive: number;
    /** Whether the cell touches the table's top outer edge. */
    touchesTopEdge: boolean;
    /** Whether the cell touches the table's bottom outer edge. */
    touchesBottomEdge: boolean;
    /** Whether the cell touches the table's left outer edge. */
    touchesLeftEdge: boolean;
    /** Whether the cell touches the table's right outer edge. */
    touchesRightEdge: boolean;
};
/**
 * Computes the normalized grid bounds for a table cell.
 *
 * The DOM table painter uses these bounds to decide whether a cell owns
 * the table's outer borders under the single-owner collapsed-border model.
 *
 * @param position - Cell position and span within the table grid
 * @returns Normalized bounds plus edge-contact flags
 *
 * @example
 * ```typescript
 * const bounds = getTableCellGridBounds({
 *   rowIndex: 0,
 *   rowSpan: 1,
 *   gridColumnStart: 0,
 *   colSpan: 2,
 *   totalRows: 5,
 *   totalCols: 2,
 * });
 *
 * bounds.touchesRightEdge; // true
 * ```
 */
export declare const getTableCellGridBounds: (position: TableCellGridPosition) => TableCellGridBounds;
//# sourceMappingURL=grid-geometry.d.ts.map