import { type Color } from './colors'; /** Underline styles per openpyxl's NestedNoneSet. */ export type UnderlineStyle = 'single' | 'double' | 'singleAccounting' | 'doubleAccounting'; export declare const UNDERLINE_STYLES: ReadonlyArray; export type VertAlign = 'baseline' | 'superscript' | 'subscript'; export declare const VERT_ALIGNS: ReadonlyArray; export type FontScheme = 'major' | 'minor'; export declare const FONT_SCHEMES: ReadonlyArray; export interface Font { readonly name?: string; readonly charset?: number; /** Font family code (0..14). */ readonly family?: number; /** Point size; openpyxl name = `sz`. */ readonly size?: number; readonly color?: Color; readonly bold?: boolean; readonly italic?: boolean; readonly strike?: boolean; readonly outline?: boolean; readonly shadow?: boolean; readonly condense?: boolean; readonly extend?: boolean; readonly underline?: UnderlineStyle; readonly vertAlign?: VertAlign; readonly scheme?: FontScheme; } export declare function makeFont(opts?: Partial): Font; /** Excel's default cell font: Calibri 11, minor scheme, theme=1 colour. */ export declare const DEFAULT_FONT: Font; /** * Translate a {@link Font} to a CSS-property record suitable for HTML * rendering / preview. Boolean toggles map to weight/style/decoration, * `size` becomes `font-size: pt`, and an explicit rgb/indexed * `color` is rendered as `#RRGGBB` (alpha dropped). theme/auto colours * are skipped — callers without a theme can't resolve them. * * `vertAlign='superscript'|'subscript'` lowers `font-size` to 0.83em * (W3C convention) and sets `vertical-align`. * * Returns `{}` for an empty Font so callers can spread it without * overwriting upstream defaults. */ export declare function fontToCss(font: Font | undefined): Record;