import React from 'react';
export interface FontLoaderProps {
    /**
     * Whether to gate rendering on fonts being loaded. When false the
     * component is a pass-through that still calls `useFonts` (the hook must
     * run unconditionally per the Rules of Hooks).
     */
    enabled: boolean;
    /** Rendered while native fonts load. Defaults to `null`. */
    fallback?: React.ReactNode;
    children: React.ReactNode;
}
/**
 * Native font loader. Calls `expo-font`'s `useFonts` with the Bloom font
 * asset map and gates `children` on the load result. The hook is invoked
 * unconditionally — `enabled` only affects what's rendered, not whether
 * fonts get loaded. This keeps Hook order stable across renders and means
 * `<BloomThemeProvider fonts={false}>` still gets fonts pre-loaded if the
 * provider tree ever flips `fonts` back on.
 *
 * Once the bundled fonts report `loaded === true`, this component also
 * mutates `Text.defaultProps.style` to prepend `{ fontFamily: 'BlomusModernus' }`
 * so every native `<Text>` in the consuming app inherits Bloom's default
 * family without callers needing to import `<Text>` from `@oxyhq/bloom`.
 * The mutation is gated by a `useRef` so it runs at most once per
 * FontLoader instance, and the underlying apply is idempotent — the
 * Bloom default is prepended to any caller `defaultProps.style`, so
 * per-call `style` overrides (which React applies after `defaultProps`)
 * still take precedence.
 */
export declare function FontLoader({ enabled, fallback, children }: FontLoaderProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=FontLoader.native.d.ts.map