import type { ThemeKey } from './themes.js'; export interface QrOptions { /** Largeur/hauteur de l'image en pixels. Default 600 (ou config). */ width?: number; /** Marge blanche autour du QR (en modules). Default 2 (ou config). */ margin?: number; /** * Niveau de correction d'erreur : * L = 7 % | M = 15 % | Q = 25 % | H = 30 % (recommandé pour overlay) */ errorCorrectionLevel?: 'L' | 'M' | 'Q' | 'H'; /** Couleur des modules sombres. Default '#0f172a'. */ darkColor?: string; /** Couleur du fond. Default '#ffffff'. */ lightColor?: string; /** * Master toggle. `false` court-circuite tout le pipeline thématique * et retombe sur le QR pur (comportement v0.2.x). Override de la * valeur config. */ genimage?: boolean; /** * Thème à appliquer en cadre (4 motifs aux coins). Pris dans le * registry natif (12 thèmes). 'random' tire dans `themePool`. * 'none' désactive le composite ponctuellement. * Objet `{ svg }` → motif custom inline. */ theme?: ThemeKey | 'random' | 'none' | { svg: string; label?: string; }; /** Sous-set des thèmes pour le tirage 'random'. Default = tous. */ themePool?: ThemeKey[]; /** Marge cadre image / canvas (proportion). Default 0.13. */ framePadding?: number; /** Taille du cartouche blanc central (proportion 0..1). Default 0.62. */ centerWhiteRatio?: number; /** Opacité du cadre image (0..1). Default 1. */ themeOpacity?: number; /** Couleur monochrome du cadre image. Default '#1e293b'. */ themeColor?: string; } /** Génère un PNG (Buffer) d'un QR code encodant `text`. */ export declare function generateQrPng(text: string, opts?: QrOptions): Promise; /** Génère un SVG (string) d'un QR code encodant `text`. */ export declare function generateQrSvg(text: string, opts?: QrOptions): Promise; /** Génère un Data URL `data:image/png;base64,...` */ export declare function generateQrDataUrl(text: string, opts?: QrOptions): Promise; export interface BuildInviteUrlsOptions { /** Base absolue (https://app.example.com), sans slash final. */ baseUrl: string; /** Path public direct (ex: '/projet-x'). Sera concaténé à baseUrl. */ directPath: string; /** Secret HMAC pour signer le token invite. */ inviteSecret: string | Buffer; /** Identifiant opaque encodé dans le token (resource id). */ inviteId: string; /** TTL en ms (default 60 jours). */ ttlMs?: number; /** Path du callback invite (default '/invite'). */ invitePath?: string; /** Meta libre encodée dans le token. */ inviteMeta?: Record; } export interface InviteUrls { /** URL absolue mode "direct" (auth standard derrière). */ directUrl: string; /** URL absolue mode "invite" (token HMAC signé). */ inviteUrl: string; /** Le token signé seul (pour storage si besoin). */ inviteToken: string; } /** * Helper combiné — signe un invite-token et construit la paire d'URLs * (direct + invite) prête à passer à `` côté client. */ export declare function buildInviteUrls(opts: BuildInviteUrlsOptions): InviteUrls; export { listThemes, THEME_KEYS, THEMES, getTheme, type ThemeKey, type ThemeAsset } from './themes.js'; export { loadQrConfig, ensureQrConfig, DEFAULT_CONFIG, type QrConfig } from './config.js'; //# sourceMappingURL=server.d.ts.map