/**
 * Upload Configuration Manager
 *
 * Manages upload settings and environment variables
 * Extracted from Holy Habit upload system
 */
import { UploadConfig } from '../types/Upload';
export declare class UploadConfigManager {
    private static configs;
    /**
     * Load configuration from environment or defaults
     *
     * @param name - Configuration name
     * @returns Upload configuration
     */
    static load(name?: string): UploadConfig;
    /**
     * Set custom configuration
     *
     * @param name - Configuration name
     * @param config - Upload configuration
     */
    static set(name: string, config: UploadConfig): void;
    /**
     * Get configuration
     *
     * @param name - Configuration name
     * @returns Upload configuration or null
     */
    static get(name: string): UploadConfig | null;
    /**
     * Clear configuration cache
     */
    static clear(): void;
    /**
     * Load configuration from environment variables
     *
     * @param name - Configuration name
     * @returns Upload configuration
     */
    private static loadFromEnvironment;
    /**
     * Get string environment variable
     *
     * @param key - Environment variable key
     * @returns String value or undefined
     */
    private static getEnvString;
    /**
     * Get number environment variable
     *
     * @param key - Environment variable key
     * @returns Number value or undefined
     */
    private static getEnvNumber;
    /**
     * Get boolean environment variable
     *
     * @param key - Environment variable key
     * @returns Boolean value or undefined
     */
    private static getEnvBoolean;
    /**
     * Get array environment variable (comma-separated)
     *
     * @param key - Environment variable key
     * @returns Array of strings or undefined
     */
    private static getEnvArray;
    /**
     * Validate configuration
     *
     * @param config - Upload configuration
     * @returns Validation result
     */
    static validate(config: UploadConfig): {
        isValid: boolean;
        errors: string[];
    };
    /**
     * Get absolute upload directory path
     *
     * @param config - Upload configuration
     * @returns Absolute path
     */
    static getAbsoluteUploadDir(config: UploadConfig): string;
    /**
     * Merge configurations
     *
     * @param base - Base configuration
     * @param override - Override configuration
     * @returns Merged configuration
     */
    static merge(base: UploadConfig, override: Partial<UploadConfig>): UploadConfig;
    /**
     * Create development configuration
     *
     * @returns Development upload configuration
     */
    static createDevelopmentConfig(): UploadConfig;
    /**
     * Create production configuration
     *
     * @returns Production upload configuration
     */
    static createProductionConfig(): UploadConfig;
}
//# sourceMappingURL=UploadConfig.d.ts.map