import type { Theme, Typography } from "./schema";
import type { SiteFont } from "./fonts/types";
type ThemeFontLoaderProps = {
    typography: Typography;
    /** Optional button font weight from theme.buttons.global.fontWeight */
    buttonFontWeight?: number;
    /** Optional extra weights to load for the body font (useful for UI labels, etc.) */
    extraBodyFontWeights?: number[];
    /** Optional extra weights to load for the heading font (useful for nav links, etc.) */
    extraHeadingFontWeights?: number[];
    /** Custom site fonts - if a family is found here, uses @font-face instead of Google Fonts */
    customFonts?: SiteFont[];
    /** Storage base URL for custom font files (required if customFonts provided) */
    storageBaseUrl?: string;
};
export declare function ThemeFontLoader({ typography, buttonFontWeight, extraBodyFontWeights, extraHeadingFontWeights, customFonts, storageBaseUrl, }: ThemeFontLoaderProps): import("react/jsx-runtime").JSX.Element | null;
export type ThemeFontLoadingOptions = {
    buttonFontWeight?: number;
    extraBodyFontWeights?: number[];
    extraHeadingFontWeights?: number[];
};
export declare function getThemeFontLoadingOptions(theme: Theme): ThemeFontLoadingOptions;
export type ThemeFontLoaderFromThemeProps = Omit<ThemeFontLoaderProps, 'typography' | 'buttonFontWeight' | 'extraBodyFontWeights' | 'extraHeadingFontWeights'> & {
    theme: Theme;
};
export declare function ThemeFontLoaderFromTheme({ theme, customFonts, storageBaseUrl, }: ThemeFontLoaderFromThemeProps): import("react/jsx-runtime").JSX.Element | null;
export default ThemeFontLoader;
