import type { AccessibilitySettings, QualitySettings } from "../../../core/domain/types.js"; import type { Dimensions } from "../../../core/domain/types.js"; import type { ParallaxConfig, Star, StarConfig } from "../domain/models/cosmic-models.js"; import type { ICosmicCalculationService } from "./contracts/ICosmicCalculationService.js"; export declare class ParallaxStarSystem { private layers; private diffractionStars; private readonly DIFFRACTION_STAR_COUNT; private readonly DIFFRACTION_SPIKE_COUNT; private config; private starConfig; private qualitySettings; private lastDimensions; private calculationService; constructor(config: ParallaxConfig, starConfig: StarConfig, qualitySettings: QualitySettings, calculationService: ICosmicCalculationService); initialize(dim: Dimensions, a11y: AccessibilitySettings): void; /** * Identify the brightest stars from the near layer for diffraction spike rendering. * These get special 6-pointed diffraction patterns like camera lens flares. */ private identifyDiffractionStars; /** * Calculate atmospheric scintillation using layered frequencies. * * Real star twinkling is caused by turbulent air cells refracting light. * Different cell sizes create different frequency components: * - Large cells: slow, smooth variations * - Small cells: rapid, jittery variations * * By combining 4 frequency layers, we get irregular, realistic flickering * instead of the smooth sine wave that looks artificial. * * @param phases - Array of 4 phase values for each frequency layer * @param intensity - How strongly this star scintillates (0-1) * @returns Opacity multiplier (0.5-1.0 range to avoid stars disappearing) */ private calculateScintillation; update(dim: Dimensions, a11y: AccessibilitySettings, frameMultiplier?: number): void; draw(ctx: CanvasRenderingContext2D, a11y: AccessibilitySettings): void; /** * Draw diffraction spikes on the brightest stars. * Creates camera-like 6-pointed star patterns with chromatic aberration. */ private drawDiffractionStars; /** * Draw a single diffraction spike with chromatic aberration. */ private drawDiffractionSpike; /** * Draw the central glow around a diffraction star. */ private drawCentralGlow; /** * Draw a proper 5-pointed star with glow (like real stars) */ private drawSparkle; /** * Smoothly adapt existing stars to new dimensions and adjust star count based on viewport area */ private adaptToNewDimensions; /** * Smoothly redistribute stars when canvas dimensions change */ private redistributeStars; getNearStars(): Star[]; /** * Get all stars from all layers (for UFO scanning) * Returns combined array with near and mid stars (brighter, better scan targets) */ getAllBrightStars(): Star[]; cleanup(): void; } //# sourceMappingURL=ParallaxStarSystem.d.ts.map