/** * Ember Configuration Constants * * Centralized configuration for ember particle behavior, colors, and physics. * Extracted for easy tuning and AI-friendly selective reading. */ /** Particle counts per quality tier - reduced for chill ambient vibe */ export declare const EMBER_COUNTS: { readonly high: 120; readonly medium: 80; readonly low: 50; }; /** Physics behavior constants - tuned for chill ambient vibe */ export declare const EMBER_PHYSICS: { /** Base rising speed (negative = upward) */ readonly RISING_SPEED_BASE: 0.2; /** Additional random rising speed range */ readonly RISING_SPEED_RANGE: 0.5; /** Horizontal drift amplitude - disabled for realistic rise */ readonly DRIFT_AMPLITUDE: 0; /** Glow radius multiplier (relative to ember size) */ readonly GLOW_MULTIPLIER: 10; /** Flicker animation speed (radians per frame) */ readonly FLICKER_SPEED: 0.04; /** Minimum opacity during flicker (prevents invisible embers) */ readonly FLICKER_MIN_OPACITY: 0.5; /** Flicker intensity range (0.85 to 1.0) - gentler flicker */ readonly FLICKER_AMPLITUDE: 0.15; /** Base flicker factor */ readonly FLICKER_BASE: 0.85; }; /** Ember size configuration */ export declare const EMBER_SIZE: { /** Minimum ember size */ readonly MIN: 2; /** Size range (added to minimum) */ readonly RANGE: 5; }; /** Ember opacity configuration */ export declare const EMBER_OPACITY: { /** Minimum base opacity */ readonly MIN: 0.6; /** Opacity range (added to minimum) */ readonly RANGE: 0.4; /** Core opacity multiplier (for solid center) */ readonly CORE_MULTIPLIER: 1.2; }; /** Color definitions for ember variants */ export declare const EMBER_COLORS: { /** Bright orange-red embers (30% probability) */ readonly ORANGE_RED: { readonly r: 255; readonly gMin: 120; readonly gMax: 170; readonly bMin: 20; readonly bMax: 50; readonly probability: 0.3; }; /** Bright amber/orange embers (40% probability) */ readonly AMBER: { readonly r: 255; readonly gMin: 160; readonly gMax: 220; readonly bMin: 30; readonly bMax: 70; readonly probability: 0.7; }; /** Very bright white-hot embers (30% probability) */ readonly WHITE_HOT: { readonly r: 255; readonly gMin: 220; readonly gMax: 255; readonly bMin: 100; readonly bMax: 150; }; }; /** Gradient rendering constants */ export declare const EMBER_GRADIENT: { /** Inner gradient stop position */ readonly INNER_STOP: 0.4; /** Inner gradient opacity multiplier */ readonly INNER_OPACITY: 0.6; }; /** Respawn and wrap behavior */ export declare const EMBER_BOUNDS: { /** Buffer distance outside viewport for respawning */ readonly RESPAWN_BUFFER: 20; }; /** Coal bed - glowing heat source at bottom - tuned for subtle effect */ export declare const COAL_CONFIG: { /** Vertical position (bottom 10% of screen) */ readonly BOTTOM_ZONE: 0.1; /** Coal size range */ readonly SIZE_MIN: 12; readonly SIZE_RANGE: 20; /** Glow radius multiplier */ readonly GLOW_MULTIPLIER: 2.5; /** Pulse animation - slower, gentler */ readonly PULSE_SPEED_MIN: 0.01; readonly PULSE_SPEED_RANGE: 0.015; readonly PULSE_AMPLITUDE: 0.2; /** Base intensity range */ readonly INTENSITY_MIN: 0.4; readonly INTENSITY_RANGE: 0.4; /** Flare (random hotspot) - less frequent */ readonly FLARE_CHANCE: 0.0005; readonly FLARE_DURATION_MIN: 40; readonly FLARE_DURATION_RANGE: 60; readonly FLARE_INTENSITY_BOOST: 0.3; /** Colors - slightly cooler */ readonly COLOR_COOL: { readonly r: 160; readonly g: 50; readonly b: 25; }; readonly COLOR_HOT: { readonly r: 230; readonly g: 120; readonly b: 40; }; readonly COLOR_FLARE: { readonly r: 255; readonly g: 200; readonly b: 130; }; }; /** Coal counts per quality tier */ export declare const COAL_COUNTS: { readonly high: 25; readonly medium: 18; readonly low: 12; readonly minimal: 8; readonly "ultra-minimal": 5; }; /** Dark amber background gradient */ export declare const EMBER_BACKGROUND_GRADIENT: readonly [{ readonly position: 0; readonly color: "#1a0a0a"; }, { readonly position: 0.3; readonly color: "#2d1410"; }, { readonly position: 0.6; readonly color: "#4a1f1a"; }, { readonly position: 1; readonly color: "#3d1814"; }]; export type HeatIntensity = "smolder" | "warm" | "hot" | "blazing"; /** Heat intensity affects color warmth, speed, and glow - tuned for chill vibe */ export declare const HEAT_INTENSITY_CONFIGS: Record; export type DensityPreset = "sparse" | "normal" | "dense" | "inferno"; /** Density multipliers for particle counts */ export declare const DENSITY_MULTIPLIERS: Record; import type { QualityLevel } from "../../../../core/domain/types.js"; export interface EmberQualityConfig { emberCount: number; smokeCount: number; sparkCount: number; glowIntensity: number; flickerEnabled: boolean; flickerSpeed: number; } export declare const EMBER_QUALITY_CONFIGS: Record; export declare const SMOKE_CONFIG: { /** Size range for smoke particles - larger for visibility */ readonly SIZE_MIN: 20; readonly SIZE_RANGE: 30; /** Opacity range - increased for visibility */ readonly OPACITY_MIN: 0.12; readonly OPACITY_RANGE: 0.15; /** Rise speed (slower than embers) */ readonly SPEED_BASE: 0.08; readonly SPEED_RANGE: 0.1; /** Horizontal drift - disabled */ readonly DRIFT_AMPLITUDE: 0; /** Color range (dark grays with slight warmth) */ readonly COLOR_MIN: 40; readonly COLOR_MAX: 70; }; export declare const SPARK_CONFIG: { /** Size range for sparks (small) */ readonly SIZE_MIN: 1; readonly SIZE_RANGE: 1.5; /** Opacity (bright) */ readonly OPACITY_MIN: 0.8; readonly OPACITY_RANGE: 0.2; /** Rise speed (faster than embers) */ readonly SPEED_BASE: 1.5; readonly SPEED_RANGE: 1; /** Lifetime in frames (short-lived) */ readonly LIFETIME_MIN: 30; readonly LIFETIME_RANGE: 40; /** Color: bright yellow to white */ readonly COLOR_R: 255; readonly COLOR_G_MIN: 220; readonly COLOR_G_MAX: 255; readonly COLOR_B_MIN: 150; readonly COLOR_B_MAX: 220; }; //# sourceMappingURL=ember-constants.d.ts.map