/** * Tabs in body text (#622): what the measurer gets of a block's tabs. * * The parser keeps every tab as a span of its own (`InlineSpan.tab`). A * tab character is a tab only in a paragraph whose style sets tab stops * (`tabStops` or `tabInterval`: a paragraph style's, a callout body's, the * body's); in any other it is set back as the word space it always was, the * span merged with its neighbours, so a stored document lays out as it did. * `:tab` is a tab everywhere: without a stop to go to it is a word space at * the measurer. Vertical text sets every tab as a word space (and the build * says so, `tabInVerticalText`). */ import type { ContentBlock, InlineSpan } from '../parse/index.js'; import type { ResolvedConfig } from '../vdt.js'; import type { BlockStyle } from './styles.js'; import type { TabSettings } from '../measure/tabs.js'; /** `spans` with the tabs `asSpace` picks set as word spaces, each merged * with the plain spans of the same style on either side (the parser cut * the text there only for the tab), so the spans are the ones the text had * before tabs were read. Same text length. */ export declare function tabsAsWordSpaces(spans: readonly InlineSpan[], asSpace: (span: InlineSpan) => boolean): InlineSpan[]; /** * The block as the measurer sets its tabs, and the paragraph's tab stops * in px (undefined when it holds no tab, or nothing to go to). `vertical`: * the text is set down the page; `rich`: the block is measured by the * formatted-text breaker, the only one that sets tabs. */ export declare function prepareTabs(block: ContentBlock, style: BlockStyle, resolved: ResolvedConfig, options: { vertical: boolean; rich: boolean; }): { block: ContentBlock; tabs?: TabSettings; }; //# sourceMappingURL=tabs.d.ts.map