import type { BoundingBox, VDTBlock, VDTColumn } from './vdt.js'; /** How far the design overlays of `blocks` reach past `x0` on the left and * `x1` on the right, in px (0 when they stay inside). */ export declare function designOverlayOverhang(blocks: readonly VDTBlock[], x0: number, x1: number): [number, number]; /** How far the marks hung past the end of their lines * (`cjk.hangingPunctuation`) in `blocks` reach past `x1`, in px (0 when * none does). Only the CJK composer hangs a mark, so no other line is * looked into. */ export declare function hangingPunctuationOverhang(blocks: readonly VDTBlock[], x1: number): number; /** How far the caption, the note and the caption bar of the resource * blocks among `blocks` reach past `x0` on the left and `x1` on the * right, in px (0 when they stay inside): a resource set in the text * with its caption in the side column (`placement.captionSide`, #729). */ export declare function resourceCaptionOverhang(blocks: readonly VDTBlock[], x0: number, x1: number): [number, number]; /** How far the design overlays of the heading blocks among `blocks` reach * above `y0`, in px (0 when they stay below it). */ export declare function headingDesignOverhangAbove(blocks: readonly VDTBlock[], y0: number): number; /** * How far the glyph ink of the lines at the head of a column may reach * above `y0`, its top, in px (0 when none may). A line's box starts at its * face's ascent, and the accented capitals of a display face rise past it * (Bangers sets them about 0.2 em above its ascent, #826): the column clip * takes in what the head lines may reach, {@link TEXT_INK_REACH_EM} above * their baselines. Only the blocks of open text before the first other * visible block are looked at: a box frame at the column's top stays cut * there, with the text inside it. */ export declare function textInkOverhangAbove(blocks: readonly VDTBlock[], y0: number): number; /** * The rectangle a renderer clips a column's blocks to. It is the column's * bbox widened horizontally by a small buffer (2pt) so that glyph ink * extending past its advance width (the tail of an "s" at the column edge) * is not chopped; the gutters between columns absorb it. A block's design * overlay may hang past the column on purpose — a callout's corner badge * sits half outside its box, a heading tab juts into the margin — so the * clip also grows to take in every overlay block of the column. A heading's * design may also reach above the column — a band anchored to the top of * the page or of the bleed — and the clip grows up to take that in too * (EF-113), and so does the first block of a column under a page-span * opener set a little above the column's top (EF-139). A resource set in * the text with its caption in the side column (#729) widens it to take in * the caption, the note and the caption bar. A CJK mark hung * past the end of its line widens it on the right * (`cjk.hangingPunctuation`); `hanging` false says no line of the document * hangs one (its `cjk.hangingPunctuation` is `'none'`), and the lines are * not looked into. The column's foot stays the edge: the flow ends there, * and a design reaching past it is cut and reported * (`collectHeadingDesignCuts`). Arabic vowel marks are the exception on * both edges: the marks of a column's first line may rise above its top * and those of its last line hang under its foot (`VDTLine.markInk`, * #376), and the clip grows to take them in. So does the ink of the text * lines at the column's head, which may rise above their boxes (a display * face's accented capitals, #826; `textInkOverhangAbove`). * A box frame (a callout) is cut at the column's top as well, with the text * inside it. Shared by the canvas and PDF backends so both paint the same * thing. */ export declare function columnClipRect(col: VDTColumn, dpi: number, hanging?: boolean): BoundingBox; //# sourceMappingURL=columnClip.d.ts.map