/**
 * Configuration management for terminal effects
 */
import { TerminalCapabilities, SafetyConfig } from "./types.js";
/**
 * Effect configuration settings
 */
export interface EffectsConfig {
    /** Enable/disable all effects */
    enabled: boolean;
    /** Animation speed multiplier (0.1 to 2.0) */
    speedMultiplier: number;
    /** Performance profile */
    performanceProfile: "low" | "medium" | "high";
    /** Force fallback mode */
    forceFallback: boolean;
    /** Preferred color mode */
    colorMode: "auto" | "none" | "16" | "256" | "truecolor";
    /** Accessibility mode */
    accessibilityMode: boolean;
    /** Show performance metrics */
    showMetrics: boolean;
    /** Custom effect-specific settings */
    effectSettings: Record<string, any>;
}
/**
 * Configuration manager for effects
 */
export declare class EffectsConfigManager {
    private config;
    private configPath;
    private terminalCapabilities?;
    constructor(configPath?: string);
    /**
     * Load configuration from file
     */
    load(): Promise<void>;
    /**
     * Save configuration to file
     */
    save(): Promise<void>;
    /**
     * Get current configuration
     */
    getConfig(): EffectsConfig;
    /**
     * Update configuration
     */
    updateConfig(updates: Partial<EffectsConfig>): Promise<void>;
    /**
     * Get safety configuration based on performance profile
     */
    getSafetyConfig(): SafetyConfig;
    /**
     * Determine if effects should be enabled
     */
    shouldEnableEffects(): boolean;
    /**
     * Get terminal capabilities
     */
    getTerminalCapabilities(): TerminalCapabilities;
    /**
     * Check if running in CI environment
     */
    private isCI;
    /**
     * Check if running in testing environment
     */
    private isTesting;
    /**
     * Apply environment variable overrides
     */
    applyEnvironmentOverrides(): void;
    /**
     * Get effect-specific configuration
     */
    getEffectConfig(effectName: string): any;
    /**
     * Set effect-specific configuration
     */
    setEffectConfig(effectName: string, config: any): Promise<void>;
}
/**
 * Global configuration instance
 */
export declare const effectsConfig: EffectsConfigManager;
/**
 * Initialize configuration
 */
export declare function initializeConfig(): Promise<void>;
/**
 * Get current configuration
 */
export declare function getConfig(): Promise<EffectsConfig>;
//# sourceMappingURL=config.d.ts.map