import type { BlockquoteConfig, BodyTextConfig, EmphasisStyle, PostextConfig, ResolvedBlockquoteConfig, ResolvedBodyTextConfig, ResolvedKashidaConfig, HyphenationConfig, LocaleTag, TashkilMode } from '../types.js'; export declare const DEFAULT_HYPHENATION_CONFIG: ResolvedBodyTextConfig['hyphenation']; /** * Whether a paragraph keeps `widowMinLines` lines at the foot of a column * when `config` does not set `bodyText.avoidWidows` itself. Off on a * character grid (`cjk.grid`, #717): the grid counts the lines of a page, * and a paragraph moved on whole leaves the page a line short. clreq * §7.1.2 and JLReq §3.5.4 have no rule for a paragraph's first line at * the foot of a page. */ export declare function avoidWidowsByDefault(config: PostextConfig | undefined): boolean; /** * Whether a paragraph keeps `orphanMinLines` lines at the head of the next * column when `config` does not set `bodyText.avoidOrphans` itself. Off on * a character grid in the Japan region (#717): JLReq §3.5.4 counts the * characters of a paragraph's last line, never its lines at a page break. * A Chinese grid keeps the rule: 孤行, the last line of a paragraph alone * at the head of a page, is the one clreq §7.1.2 names. The region is * `cjk.region`, or under `'auto'` the one of the document language as * `resolveAllConfig` reads it (`locale`, else the hyphenation locale). */ export declare function avoidOrphansByDefault(config: PostextConfig | undefined): boolean; /** Blockquotes as postext 1.4 set them: grey, italic, the body's * first-line indent, no side indent. */ export declare const DEFAULT_BLOCKQUOTE_CONFIG: ResolvedBlockquoteConfig; /** A `shortListMaxItems` as written (#749): a whole number of items, one * or more, else `undefined`. */ export declare function shortListMaxItemsOf(value: unknown): number | undefined; export declare const DEFAULT_BODY_TEXT_CONFIG: ResolvedBodyTextConfig; export declare function hyphenationEqual(a: HyphenationConfig | undefined, b: HyphenationConfig | undefined): boolean; /** Whether `value` names an emphasis style. */ export declare function isEmphasisStyle(value: unknown): value is EmphasisStyle; /** Whether `value` names a tashkīl mode. */ export declare function isTashkilMode(value: unknown): value is TashkilMode; /** How `*…*` is set by default in a document in `locale`: in bold when * it is written in Arabic script, in italics otherwise (#376). */ export declare function defaultEmphasisFor(locale: unknown): EmphasisStyle; /** `bodyText.emphasis` resolved: `'auto'`, unset or an unknown value * follow the language. */ export declare function resolveEmphasis(value: unknown, locale: unknown): EmphasisStyle; /** The defaults of kashida justification once it is on (see * `BodyTextConfig.kashida`). */ export declare const DEFAULT_KASHIDA_CONFIG: ResolvedKashidaConfig; /** Whether `tag` names a language written in the Arabic script (`ar`, * `fa`, `ur`, `ps`, `ks-Arab`…): its justified text takes kashidas unless * the config says `kashida: 'none'`. */ export declare function isArabicScriptLanguage(tag: unknown): boolean; /** Kashida justification of a resolved body text, or `undefined` when it * is off. */ export declare function resolvedKashida(bodyText: Pick): ResolvedKashidaConfig | undefined; /** A blockquote style in full: unset fields keep postext 1.4's look (see * {@link DEFAULT_BLOCKQUOTE_CONFIG}); an unset `firstLineIndent` stays * unset, the body's then applying. In a document written in Arabic * script (`locale`) a quotation is upright by default: its type has no * italics (#376). */ export declare function resolveBlockquoteConfig(partial?: BlockquoteConfig, locale?: unknown): ResolvedBlockquoteConfig; /** `blockquote` without the fields that hold their default (in a document * in `locale`); undefined when none is left. */ export declare function stripBlockquoteDefaults(blockquote?: BlockquoteConfig, locale?: unknown): BlockquoteConfig | undefined; export declare function resolveBodyTextConfig(partial?: BodyTextConfig, documentLocale?: LocaleTag): ResolvedBodyTextConfig; /** `bodyText` without the fields that hold their default. `documentLocale` * (the config's `locale`) matters to hyphenation only: in a Chinese, * Japanese or Korean document its default is off, and the patterns of a * document that names its language are that language's. `avoidWidowsOn` * and `avoidOrphansOn` are the document's defaults for the two break * rules (`avoidWidowsByDefault(config)`, `avoidOrphansByDefault(config)`, * #717): each rule is dropped when it restates its own, so `true` is * kept on a character grid where the rule is off, and `false` dropped * there. */ export declare function stripBodyTextDefaults(bodyText?: BodyTextConfig, documentLocale?: LocaleTag, avoidWidowsOn?: boolean, avoidOrphansOn?: boolean): BodyTextConfig | undefined; //# sourceMappingURL=bodyText.d.ts.map