/**
 * Scale System for Dynamic Design Tokens
 * Supports predefined scales (nisaaulia, supriyadies, weddio, wedwise) and any dynamic scale name.
 * Dynamic scales: client passes defaultScale="brandX" and tokensUrl with color.byScale.brandx;
 * no config change in design system needed.
 */
/** Known scales get autocomplete; any string is allowed for client-defined scales */
export type ScaleName = "nisaaulia" | "supriyadies" | "weddio" | "wedwise" | (string & {});
export interface ScaleConfig {
    name: string;
    multiplier: number;
    spacingMultiplier?: number;
    fontSizeMultiplier?: number;
    lineHeightMultiplier?: number;
    borderRadiusMultiplier?: number;
    description?: string;
    /** Optional font families per scale (applied to :root when set) */
    fontFamily?: {
        primary?: string;
        mono?: string;
        heading?: string;
    };
    /** Prefix for per-scale color CSS vars (e.g. "color-by-scale-wedwise" → --color-by-scale-wedwise-primary-500) */
    colorTokenPrefix?: string;
    /** Direct hex overrides for --color-primary-*, --color-secondary-*, etc. (key: CSS var name without --) */
    colorOverrides?: Record<string, string>;
    /** Icon set key for registry (e.g. "default" | "weddio" | "wedwise") */
    iconSet?: "default" | "weddio" | "wedwise";
}
/** Predefined scale keys (used for typed scales object; dynamic scales are not listed) */
export type KnownScaleName = "nisaaulia" | "supriyadies" | "weddio" | "wedwise";
/**
 * Scale configurations (predefined). Dynamic scale names use auto-generated config via getScaleConfigFor().
 */
export declare const scales: Record<KnownScaleName, ScaleConfig>;
/**
 * Normalize scale name for CSS var prefix. Matches ScaleProvider's toCSSVarName so that
 * --color-by-scale-{normalized} matches client tokens (e.g. color.byScale.brandX → --color-by-scale-brand-x).
 * Client tokens.json must use the same key under color.byScale (e.g. color.byScale.brandX or color.byScale["brand-x"]).
 */
export declare function normalizeScaleName(scale: string): string;
/**
 * Get scale config for a given scale name. Predefined scales use scales[]; any other string gets a default config
 * with colorTokenPrefix "color-by-scale-{normalizedScaleName}" so client can provide palette via tokensUrl.
 */
export declare function getScaleConfigFor(scale: string): ScaleConfig;
/**
 * Get current active scale name
 */
export declare function getCurrentScale(): ScaleName;
/**
 * Get current scale configuration (uses predefined or auto-generated config for dynamic scale names)
 */
export declare function getScaleConfig(): ScaleConfig;
/**
 * Set active scale
 * @param scale - Scale name (predefined or any string for dynamic scale; palette from client via tokensUrl)
 */
export declare function setScale(scale: ScaleName): void;
/**
 * Apply scaled value
 * @param baseValue - Base value (e.g., "1rem", "16px", 16)
 * @param scaleType - Type of scale to apply (default: "multiplier")
 */
export declare function applyScale(baseValue: string | number, scaleType?: "multiplier" | "spacing" | "fontSize" | "lineHeight" | "borderRadius"): string;
/**
 * Get CSS variable for scale
 */
export declare function getScaleCSSVar(scaleType?: "multiplier" | "spacing" | "fontSize" | "lineHeight" | "borderRadius"): string;
/**
 * Initialize scale from environment variable or default to nisaaulia
 */
export declare function initScale(): void;
//# sourceMappingURL=scale.d.ts.map