/** The type ramp as data, for code that measures text (auto-grow heights, compact inputs, chart labels); * `tokens.css` declares the same ramp, and `tokens_agreement.test.ts` fails when they disagree. Body * rungs carry prose leading (14/24, as `.lotics-markdown`), tightening toward ~1.2 at display sizes — * line-height sets every single line's box, so density was traded for rhythm. Tracking is Inter's own * curve (`TYPE_TRACKING`), in em, so one value serves both breakpoints. */ export interface TypeRung { size: number; leading: number; } /** Below 768px; the display rungs are the ones that grow on desktop. */ export declare const TYPE_RAMP_MOBILE: { readonly xs: { readonly size: 12; readonly leading: 18; }; readonly sm: { readonly size: 14; readonly leading: 24; }; readonly md: { readonly size: 16; readonly leading: 26; }; readonly lg: { readonly size: 18; readonly leading: 28; }; readonly xl: { readonly size: 22; readonly leading: 28; }; readonly xxl: { readonly size: 28; readonly leading: 34; }; readonly xxxl: { readonly size: 32; readonly leading: 38; }; }; /** 768px and above (`use_screen_size`). */ export declare const TYPE_RAMP_DESKTOP: { readonly xs: { readonly size: 12; readonly leading: 18; }; readonly sm: { readonly size: 14; readonly leading: 24; }; readonly md: { readonly size: 16; readonly leading: 26; }; readonly lg: { readonly size: 20; readonly leading: 30; }; readonly xl: { readonly size: 24; readonly leading: 32; }; readonly xxl: { readonly size: 32; readonly leading: 44; }; readonly xxxl: { readonly size: 48; readonly leading: 52; }; }; export declare const TYPE_LEADING_TIGHT_MOBILE: Record<"lg" | "md" | "sm" | "xl" | "xs" | "xxl" | "xxxl", number>; export declare const TYPE_LEADING_TIGHT_DESKTOP: Record<"lg" | "md" | "sm" | "xl" | "xs" | "xxl" | "xxxl", number>; /** * Tracking per rung, in em — Inter's own dynamic metrics, not a house curve: * * tracking(z) = a + b · e^(c · z) a = -0.0223, b = 0.185, c = -0.1745 * * evaluated at each rung's base size, rounded to a thousandth. Never tune by eye — fix size or leading * instead. `xs` lands at 0.000, which also protects Vietnamese stacked diacritics and Inter's `1`/`l`/`i` * at 12px. One value per rung: an em scales, and the curve differs by under 0.002em across a rung's sizes. */ export declare const TYPE_TRACKING: { readonly xs: 0; readonly sm: -0.006; readonly md: -0.011; readonly lg: -0.014; readonly xl: -0.018; readonly xxl: -0.021; readonly xxxl: -0.022; }; /** `TextSize` in `text.tsx` is this set. */ export type TypeRungName = keyof typeof TYPE_RAMP_MOBILE; /** For surfaces with no em unit (a canvas, a chart axis, a raw style object); rounded to a thousandth for * readable snapshots. */ export declare function trackingPx(rung: TypeRungName, size: number): number;