import React from "react";
import { ScaleName, getScaleConfig } from "./scale";
interface ScaleContextType {
    scale: ScaleName;
    setScale: (scale: ScaleName) => void;
    config: ReturnType<typeof getScaleConfig>;
    assetsLoadError?: {
        tokens?: boolean;
        fonts?: boolean;
        icons?: boolean;
    };
}
export declare const ScaleContext: React.Context<ScaleContextType | undefined>;
/** Runtime icon set from IcoMoon selection.json: name → unicode (font) and/or name → SVG path d[] (SVG mapping) */
export interface IconAssetsContextType {
    nameToCode: Record<string, number> | null;
    /** name → array of SVG path d strings (for custom icon SVG from IcoMoon) */
    nameToSvgPaths: Record<string, string[]> | null;
    loaded: boolean;
}
declare const IconAssetsContext: React.Context<IconAssetsContextType>;
export { IconAssetsContext };
export interface ScaleProviderAssetsConfig {
    /** Base URL for assets (e.g. "" or "/assets") */
    assetBaseUrl?: string;
    /** URL to fonts manifest JSON (primary, mono, icon, heading) */
    fontsManifestUrl?: string;
    /** URL to IcoMoon selection.json */
    iconSelectionUrl?: string;
    /** URL to theme/tokens JSON (flat or nested, applied to :root) */
    tokensUrl?: string;
    /** Called when asset fetch fails (dev-friendly) */
    onAssetsLoadError?: (error: {
        tokens?: boolean;
        fonts?: boolean;
        icons?: boolean;
    }) => void;
}
interface ScaleProviderProps {
    children: React.ReactNode;
    defaultScale?: ScaleName;
    /** Optional runtime assets (fonts, icons, tokens) */
    assetBaseUrl?: string;
    fontsManifestUrl?: string;
    iconSelectionUrl?: string;
    tokensUrl?: string;
    onAssetsLoadError?: (error: {
        tokens?: boolean;
        fonts?: boolean;
        icons?: boolean;
    }) => void;
}
/**
 * ScaleProvider - Provides scale context and optional runtime assets (fonts, icons, tokens)
 */
export declare function ScaleProvider({ children, defaultScale, assetBaseUrl, fontsManifestUrl, iconSelectionUrl, tokensUrl, onAssetsLoadError, }: ScaleProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useScale(): ScaleContextType;
export declare function useIconAssets(): IconAssetsContextType;
//# sourceMappingURL=ScaleProvider.d.ts.map