/**
 * Shared types for custom site fonts
 *
 * Used by:
 * - packages/blocks: ThemeFontLoader
 * - apps/dashboard: Font settings, FontPicker
 * - apps/frontend: Font loading
 */
/**
 * The Supabase storage bucket name for site fonts
 */
export declare const SITE_FONTS_BUCKET = "site-fonts";
/**
 * Construct the storage base URL for site fonts
 *
 * @param supabaseUrl - The Supabase project URL (e.g., https://xxx.supabase.co)
 * @returns The full storage URL for the site-fonts bucket
 *
 * @example
 * ```ts
 * const storageUrl = getSiteFontsStorageUrl('https://xxx.supabase.co')
 * // Returns: 'https://xxx.supabase.co/storage/v1/object/public/site-fonts'
 * ```
 */
export declare function getSiteFontsStorageUrl(supabaseUrl: string): string;
/**
 * Individual font file within a font family
 */
export type SiteFontFile = {
    /** Storage path: sites/{siteId}/fonts/{fontId}/{weight}-{style}.woff2 */
    storagePath: string;
    /** CSS font-weight value (100-900) */
    weight: number;
    /** CSS font-style: 'normal' or 'italic' */
    style: 'normal' | 'italic';
};
/**
 * Custom font family uploaded by site owner
 * This is the minimal shape needed for rendering fonts
 */
export type SiteFont = {
    /** UUID of the font record */
    id: string;
    /** CSS font-family name (extracted from font or user-provided) */
    familyName: string;
    /** Optional friendly name for UI display */
    displayName: string | null;
    /** True if this is a variable font with weight axis */
    isVariable: boolean;
    /** Minimum weight for variable fonts (e.g., 100) */
    variableWeightMin: number | null;
    /** Maximum weight for variable fonts (e.g., 900) */
    variableWeightMax: number | null;
    /** Font files (one per weight/style combination) */
    files: SiteFontFile[];
    /** Font classification for filtering */
    category: 'serif' | 'sans-serif' | 'display' | 'handwriting' | 'monospace' | null;
};
/**
 * Generate @font-face CSS for a single font file
 */
export declare function generateFontFaceForFile(familyName: string, file: SiteFontFile, storageBaseUrl: string): string;
/**
 * Generate @font-face CSS for a variable font
 */
export declare function generateFontFaceForVariableFont(familyName: string, file: SiteFontFile, weightMin: number, weightMax: number, storageBaseUrl: string): string;
/**
 * Generate all @font-face rules for custom fonts
 *
 * @param fonts - Array of custom fonts
 * @param storageBaseUrl - Base URL for storage (e.g., https://xxx.supabase.co/storage/v1/object/public/site-fonts)
 * @returns CSS string with all @font-face rules
 */
export declare function generateFontFaceCss(fonts: SiteFont[], storageBaseUrl: string): string;
