/**
 * Configuration d'installation, persistée dans `DATA_DIR/config.json`.
 *
 * Complète les variables d'environnement avec ce qui relève de l'installation
 * locale : le domaine public (choisi par l'assistant de premier lancement),
 * l'état d'avancement du setup, et les secrets JWT.
 *
 * Secrets JWT : générés aléatoirement et persistés au premier accès — sans
 * cela, un serveur installé "en vrai" tournerait avec les secrets par défaut
 * du code (connus de tous). L'environnement (`JWT_ACCESS_SECRET` /
 * `JWT_REFRESH_SECRET`) prime toujours sur le fichier.
 */
export interface InstallConfig {
    version: number;
    /** Domaine public (ex. photos.madomain.fr) — null = accès direct par IP. */
    domain: string | null;
    /** ISO du moment où l'assistant a terminé — null = premier lancement. */
    setupDoneAt: string | null;
    /** Email du compte admin créé par l'assistant. */
    adminEmail: string | null;
    jwtAccessSecret: string;
    jwtRefreshSecret: string;
    /** Secret dédié des clés de maintenance — jamais réutilisé pour l'auth. */
    jwtMaintenanceSecret: string;
}
export declare function configPath(): string;
/** Charge la config d'installation (initialise le fichier au premier accès). */
export declare function loadInstallConfig(): InstallConfig;
export declare function saveInstallConfig(cfg: InstallConfig): void;
/** Applique un patch (ex. fin du setup) et persiste. */
export declare function updateInstallConfig(patch: Partial<InstallConfig>): InstallConfig;
/** Secret access JWT effectif : env prioritaire, sinon config générée. */
export declare function accessSecret(): string;
/** Secret refresh JWT effectif : env prioritaire, sinon config générée. */
export declare function refreshSecret(): string;
/** Secret des clés de maintenance : env prioritaire, sinon config générée. */
export declare function maintenanceSecret(): string;
