import { ResolvedPaintItem } from '../../../../../contracts/src/index.js';
/**
 * Per-fragment rendering info for between-border groups.
 *
 * - showBetweenBorder: replace bottom border with the between definition
 * - suppressTopBorder: hide this fragment's top border (covered by previous fragment's extension)
 * - gapBelow: px to extend the border layer downward into the paragraph-spacing gap
 */
export type BetweenBorderInfo = {
    showBetweenBorder: boolean;
    suppressTopBorder: boolean;
    suppressBottomBorder: boolean;
    gapBelow: number;
};
/**
 * Pre-computes per-fragment between-border rendering info for a page.
 *
 * Two fragments (i, i+1) form a border group pair when:
 * 1. Both are para fragments (not table/image/drawing)
 * 2. Neither is a page-split continuation
 * 3. They represent different logical paragraphs
 * 4. Both have border definitions
 * 5. Their full border definitions match (same border group)
 *
 * Per ECMA-376 §17.3.1.5: grouping occurs when all border properties are
 * identical. A `between` border is NOT required — when absent, the group
 * is rendered as a single box without a separator line.
 *
 * For each pair, the first fragment gets:
 * - showBetweenBorder: true — bottom border replaced with between definition
 * - gapBelow: px distance to extend border layer into spacing gap
 *
 * The second fragment gets:
 * - suppressTopBorder: true — the previous fragment's extension covers the boundary
 *
 * Middle fragments in a chain of 3+ get both flags.
 */
export declare const computeBetweenBorderFlags: (resolvedItems: readonly ResolvedPaintItem[]) => Map<number, BetweenBorderInfo>;
//# sourceMappingURL=group-analysis.d.ts.map