import { ComponentSizeValue } from './componentSize'; export type SizeValue = ComponentSizeValue; export interface SizeScale { xs: number; sm: number; md: number; lg: number; xl: number; '2xl': number; '3xl': number; } export declare const SIZE_SCALES: { readonly fontSize: { readonly xs: 10; readonly sm: 12; readonly md: 14; readonly lg: 16; readonly xl: 18; readonly '2xl': 20; readonly '3xl': 24; }; readonly spacing: { readonly xs: 4; readonly sm: 8; readonly md: 12; readonly lg: 16; readonly xl: 20; readonly '2xl': 24; readonly '3xl': 32; }; readonly iconSize: { readonly xs: 12; readonly sm: 16; readonly md: 20; readonly lg: 24; readonly xl: 28; readonly '2xl': 32; readonly '3xl': 40; }; readonly height: { readonly xs: 28; readonly sm: 32; readonly md: 36; readonly lg: 44; readonly xl: 52; readonly '2xl': 60; readonly '3xl': 68; }; readonly radius: { readonly xs: 2; readonly sm: 4; readonly md: 6; readonly lg: 8; readonly xl: 12; readonly '2xl': 16; readonly '3xl': 20; }; readonly lineHeight: { readonly xs: 1.2; readonly sm: 1.3; readonly md: 1.4; readonly lg: 1.5; readonly xl: 1.6; readonly '2xl': 1.7; readonly '3xl': 1.8; }; readonly controlLabel: { readonly xs: 10; readonly sm: 11; readonly md: 13; readonly lg: 14; readonly xl: 16; readonly '2xl': 18; readonly '3xl': 20; }; readonly controlIcon: { readonly xs: 14; readonly sm: 16; readonly md: 20; readonly lg: 22; readonly xl: 24; readonly '2xl': 28; readonly '3xl': 32; }; }; /** * Resolves a size value to a number * @param value - Size value (string token or number) * @param scale - Which scale to use for string tokens * @param unit - Unit to append (default: no unit for React Native) * @returns Resolved size as number or string with unit */ export declare function resolveSize(value: SizeValue | undefined, scale: keyof typeof SIZE_SCALES, unit?: 'px' | 'rem' | 'em' | ''): number | string; /** * Get font size from size value */ export declare function getFontSize(size: SizeValue | undefined): number; /** * Get spacing from size value */ export declare function getSpacing(size: SizeValue | undefined): number; /** * Get icon size from size value */ export declare function getIconSize(size: SizeValue | undefined): number; /** * Resolves the fontSize for a label rendered alongside a form control * (Input/Checkbox/Switch/Radio/Select…). Numeric `size` values scale at ~0.85x * so the label stays one step smaller than the control's own font. */ export declare function getControlLabelFontSize(size: SizeValue | undefined): number; /** * Resolves the icon size for icons rendered *inside* a form control * (password toggle, inline radio icon, clear button, etc.). Numeric `size` * values scale at ~1.1x so the icon reads as slightly larger than the text. */ export declare function getControlIconSize(size: SizeValue | undefined): number; /** * Get height from size value */ export declare function getHeight(size: SizeValue | undefined): number; /** * Get border radius from size value */ export declare function getRadius(size: SizeValue | undefined): number; /** * Get line height from size value * For numeric values, returns a reasonable line height multiplier * For string values, uses the predefined line height scale */ export declare function getLineHeight(size: SizeValue | undefined): number; export declare const COMPONENT_SIZES: { readonly button: { readonly xs: { readonly fontSize: "xs"; readonly spacing: "xs"; readonly height: "xs"; }; readonly sm: { readonly fontSize: "sm"; readonly spacing: "sm"; readonly height: "sm"; }; readonly md: { readonly fontSize: "md"; readonly spacing: "md"; readonly height: "md"; }; readonly lg: { readonly fontSize: "lg"; readonly spacing: "lg"; readonly height: "lg"; }; readonly xl: { readonly fontSize: "xl"; readonly spacing: "xl"; readonly height: "xl"; }; readonly '2xl': { readonly fontSize: "2xl"; readonly spacing: "2xl"; readonly height: "2xl"; }; readonly '3xl': { readonly fontSize: "3xl"; readonly spacing: "3xl"; readonly height: "3xl"; }; }; readonly chip: { readonly xs: { readonly fontSize: "xs"; readonly spacing: "xs"; readonly height: "xs"; }; readonly sm: { readonly fontSize: "xs"; readonly spacing: "sm"; readonly height: "sm"; }; readonly md: { readonly fontSize: "sm"; readonly spacing: "sm"; readonly height: "md"; }; readonly lg: { readonly fontSize: "sm"; readonly spacing: "md"; readonly height: "lg"; }; readonly xl: { readonly fontSize: "md"; readonly spacing: "md"; readonly height: "xl"; }; readonly '2xl': { readonly fontSize: "lg"; readonly spacing: "lg"; readonly height: "2xl"; }; readonly '3xl': { readonly fontSize: "xl"; readonly spacing: "xl"; readonly height: "3xl"; }; }; readonly badge: { readonly xs: 8; readonly sm: 10; readonly md: 14; readonly lg: 18; readonly xl: 22; readonly '2xl': 26; readonly '3xl': 30; }; };