import { type ThemeKey, type ThemeAsset } from './themes.js'; import type { QrConfigDefaults } from './config.js'; export interface ComposeOptions { width: number; errorCorrectionLevel: 'L' | 'M' | 'Q' | 'H'; darkColor: string; lightColor: string; theme: ThemeKey | 'random' | 'none' | { svg: string; label?: string; }; themePool: ThemeKey[]; framePadding: number; centerWhiteRatio: number; themeOpacity: number; themeColor: string; } /** * Résout la prop `theme` en thème concret. * - 'random' → tire dans themePool * - 'none' → null (caller doit fallback sur QR pur) * - { svg } → thème inline custom * - clé → thème natif via registry */ export declare function resolveTheme(theme: ComposeOptions['theme'], pool: ThemeKey[]): ThemeAsset | null; /** * Génère le SVG composite (theme frame + center white card + QR). * Si theme='none', retourne null — le caller doit fallback sur le QR pur. */ export declare function composeThemedSvg(text: string, opts: ComposeOptions): Promise; /** * Génère le PNG composite via @resvg/resvg-js. * Si theme='none', retourne null — le caller doit fallback. */ export declare function composeThemedPng(text: string, opts: ComposeOptions): Promise; /** * Génère un Data URL PNG du composite. * Si theme='none', retourne null — le caller doit fallback. */ export declare function composeThemedDataUrl(text: string, opts: ComposeOptions): Promise; /** Helper de merge config + opts pour les fonctions de génération. */ export declare function mergeComposeOpts(cfg: QrConfigDefaults, opts?: Partial): ComposeOptions; //# sourceMappingURL=composer.d.ts.map