import type { Dimensions, QualityLevel } from "../../../core/domain/types.js"; import type { DepthParallaxTracker } from "../../../core/services/DepthParallaxTracker.js"; import type { Snowflake } from "../domain/models/winter-models.js"; import type { WinterCursorLightTracker } from "./WinterCursorLightTracker.js"; export interface SnowBandIndices { readonly powder: readonly number[]; readonly crystal: readonly number[]; readonly foreground: readonly number[]; } export type SnowOpticsStatus = "idle" | "loading" | "loaded" | "failed"; export interface SnowVolumeStats { atlasStatus: SnowOpticsStatus; atlasRequests: number; powder: number; crystal: number; foreground: number; } interface SnowVolumeRendererOptions { createImage?: () => HTMLImageElement; } export declare class SnowVolumeRenderer { private atlas; private atlasStatus; private atlasRequests; private loadGeneration; private quality; private readonly createImage?; private readonly parallax; private readonly cursorLight; private lastCounts; constructor(parallax: DepthParallaxTracker, cursorLight: WinterCursorLightTracker, options?: SnowVolumeRendererOptions); initialize(quality: QualityLevel): void; setQuality(quality: QualityLevel): void; draw(flakes: readonly Snowflake[], bands: SnowBandIndices, ctx: CanvasRenderingContext2D, dimensions: Dimensions): void; getStats(): SnowVolumeStats; cleanup(): void; private requestAtlasWhenNeeded; private drawPowder; private drawCrystals; private drawForeground; } export {}; //# sourceMappingURL=SnowVolumeRenderer.d.ts.map