import "dotenv/config";
import { z } from "zod";
declare const envSchema: z.ZodObject<{
    NODE_ENV: z.ZodDefault<z.ZodEnum<["development", "test", "production"]>>;
    LOG_LEVEL: z.ZodDefault<z.ZodString>;
    PORT: z.ZodDefault<z.ZodNumber>;
    /** URL publique du serveur (affichée par l'assistant, servie par Caddy). */
    PUBLIC_URL: z.ZodDefault<z.ZodString>;
    /** Racine des données : base SQLite + médias + miniatures. */
    DATA_DIR: z.ZodDefault<z.ZodString>;
    /** Secrets JWT — générés et persistés dans config.json au premier démarrage
     * (voir core/config.ts) ; ces variables les écrasent si définies. */
    JWT_ACCESS_SECRET: z.ZodOptional<z.ZodString>;
    JWT_REFRESH_SECRET: z.ZodOptional<z.ZodString>;
    ACCESS_TOKEN_TTL: z.ZodDefault<z.ZodString>;
    REFRESH_TOKEN_TTL_DAYS: z.ZodDefault<z.ZodNumber>;
    /** Durée de vie d'une clé de maintenance (ex. "30m", "1h"). */
    MAINTENANCE_KEY_TTL: z.ZodDefault<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    NODE_ENV: "development" | "test" | "production";
    LOG_LEVEL: string;
    PORT: number;
    PUBLIC_URL: string;
    DATA_DIR: string;
    ACCESS_TOKEN_TTL: string;
    REFRESH_TOKEN_TTL_DAYS: number;
    MAINTENANCE_KEY_TTL: string;
    JWT_ACCESS_SECRET?: string | undefined;
    JWT_REFRESH_SECRET?: string | undefined;
}, {
    NODE_ENV?: "development" | "test" | "production" | undefined;
    LOG_LEVEL?: string | undefined;
    PORT?: number | undefined;
    PUBLIC_URL?: string | undefined;
    DATA_DIR?: string | undefined;
    JWT_ACCESS_SECRET?: string | undefined;
    JWT_REFRESH_SECRET?: string | undefined;
    ACCESS_TOKEN_TTL?: string | undefined;
    REFRESH_TOKEN_TTL_DAYS?: number | undefined;
    MAINTENANCE_KEY_TTL?: string | undefined;
}>;
export type Env = z.infer<typeof envSchema>;
export declare function loadEnv(): Env;
export declare const env: {
    NODE_ENV: "development" | "test" | "production";
    LOG_LEVEL: string;
    PORT: number;
    PUBLIC_URL: string;
    DATA_DIR: string;
    ACCESS_TOKEN_TTL: string;
    REFRESH_TOKEN_TTL_DAYS: number;
    MAINTENANCE_KEY_TTL: string;
    JWT_ACCESS_SECRET?: string | undefined;
    JWT_REFRESH_SECRET?: string | undefined;
};
export {};
