import { type ProseView } from "./prose-view.js"; export declare const DASH_STYLES: readonly ["american", "british", "none"]; export type DashStyle = (typeof DASH_STYLES)[number]; export interface DashOptions { /** "american" (unspaced em), "british" (spaced en), "none". Default: "american" */ dashStyle?: DashStyle; } export declare const numberRangeDisallowedPrefixes: readonly ["-", "–", "—", "−"]; /** Convert number ranges to en-dash (e.g., "1-5" → "1–5"). */ export declare const enDashNumberRange: import("./prose-view.js").ProsePass; /** Convert month ranges to en-dash (e.g., "January-March" → "January–March"). */ export declare function enDashDateRange(input: string, options?: DashOptions): string; export declare function enDashDateRange(input: ProseView, options?: DashOptions): void; /** Convert hyphens to minus signs in numeric contexts (e.g., "-5" → "−5"). */ export declare const minusReplace: import("./prose-view.js").ProsePass; export declare function hyphenReplace(input: string, options?: DashOptions): string; export declare function hyphenReplace(input: ProseView, options?: DashOptions): void; /** * Insert a word joiner (U+2060) immediately before each unspaced em or en * dash that has preceding content, preventing the dash from appearing as the * first glyph on a wrapped line. The em dash (U+2014) is Unicode line-break * class B2, which permits a break on either side; the en dash (U+2013) is * class BA (break after). The word joiner glues either dash to the preceding * word so it cannot start a wrapped line. Does not insert before line-leading * dashes (preceded by whitespace or start-of-string) or dashes already glued * with a word joiner — including British-style spaced en dashes ("word – word"), * which are already protected by the surrounding spaces. * * **Trade-off:** the inserted U+2060 is invisible but present in the DOM, so * browser Ctrl+F / find-in-page will not match a query like `plan—result` * against the rendered `plan⁠—result`. This is the same trade-off made by * `nbspTransform` (U+00A0 breaks `Fig. 1` searches). Apply only in rendered * HTML; do not write into Markdown source. */ export declare const dashWordJoiner: import("./prose-view.js").ProsePass; //# sourceMappingURL=dashes.d.ts.map