/** * MilkyWaySystem - The Hero Element * * Creates a luminous river of stars across the sky with: * - Multi-layer gradient rendering (like fish iridescence) * - Dark dust lanes with organic edges (like jellyfish mesoglea) * - Bright star clusters with pulsing (like bioluminescence) * - Traveling shimmer wave across the band * - Organic edge variation using seed arrays (like dappled light rays) * * Visual approach inspired by Deep Ocean's techniques: * - Every element has multiple independent animation phases * - Multi-layer gradients create depth * - Seed-based organic variation prevents geometric feel */ import type { AccessibilitySettings } from "../../../core/domain/types.js"; import type { Dimensions, QualityLevel } from "../../../core/domain/types.js"; import type { ICosmicCalculationService } from "./contracts/ICosmicCalculationService.js"; interface MilkyWayConfig { bandWidthPercent: number; pathPoints: number; dustLaneCount: number; starCloudCount: number; baseOpacity: number; coreOpacity: number; edgeOpacity: number; colors: { edge: string; mid: string; core: string; }; shimmerSpeed: number; glowPulseSpeed: number; dustLaneDriftSpeed: number; starCloudPulseSpeed: number; enabledOnQuality: ("high" | "medium" | "low" | "minimal")[]; quality: { high: QualityFeatures; medium: QualityFeatures; }; } interface QualityFeatures { dustLanes: boolean; starClouds: boolean; shimmer: boolean; edgeDetail: boolean; } export declare class MilkyWaySystem { private band; private config; private calculationService; private quality; private lastDimensions; constructor(config: MilkyWayConfig, calculationService: ICosmicCalculationService); initialize(dim: Dimensions, quality: QualityLevel): void; /** * Generate the curved path across the sky * The Milky Way should stretch diagonally with a slight S-curve */ private generateBandPath; /** * Generate varying widths along the band * Wider in the middle (galactic center), narrower at edges */ private generateBandWidths; /** * Generate dust lanes - dark regions that create depth */ private generateDustLanes; /** * Generate star clusters - bright regions within the band */ private generateStarClouds; update(a11y: AccessibilitySettings, frameMultiplier?: number): void; draw(ctx: CanvasRenderingContext2D, a11y: AccessibilitySettings): void; /** * Draw the base glow - the foundational gradient band */ private drawBaseGlow; /** * Draw a single segment of the band with gradient */ private drawBandSegment; /** * Get organic edge variation using seed arrays (like dappled light rays) */ private getEdgeVariation; /** * Draw the brighter core region - soft gradients for photorealistic effect */ private drawCoreBrightness; /** * Draw dust lanes - dark absorption regions (like jellyfish mesoglea) */ private drawDustLanes; /** * Draw star clusters - bright regions (like bioluminescence spots) */ private drawStarClouds; /** * Draw traveling shimmer wave (like fish iridescence wave) */ private drawShimmer; /** * Draw subtle edge highlights * DISABLED: Hard stroke lines don't fit photorealistic approach */ private drawEdgeHighlights; /** * Helper to adjust color alpha */ private adjustAlpha; private getQualityFeatures; handleResize(newDim: Dimensions): void; cleanup(): void; } export {}; //# sourceMappingURL=MilkyWaySystem.d.ts.map