import type { ShimmeringDotsAuroraConfig, ShimmeringDotsDisplaceConfig, ShimmeringDotsMeteorsConfig, ShimmeringDotsMorphConfig, ShimmeringDotsOrganicConfig, ShimmeringDotsShimmerConfig, ShimmeringDotsStarfieldConfig, ShimmeringDotsTwistConfig } from './ShimmeringDotsBackground.constants'; export declare class Pixel { width: number; height: number; ctx: CanvasRenderingContext2D; x: number; y: number; color: string; speed: number; size: number; sizeStep: number; minSize: number; maxSizeInteger: number; maxSize: number; delay: number; counter: number; counterStep: number; isIdle: boolean; isReverse: boolean; isShimmer: boolean; constructor(width: number, height: number, context: CanvasRenderingContext2D, x: number, y: number, color: string, speed: number, delay: number, dotSize: number); getRandomValue(min: number, max: number): number; draw(): void; appear(): void; shimmer(): void; } export declare function getEffectiveSpeed(value: number, reducedMotion: boolean): number; export type WiggleLive = { sizeMin: number; sizeMax: number; drift: number; speed: number; twinkle: number; }; export declare class Particle { ctx: CanvasRenderingContext2D; baseX: number; baseY: number; sizeT: number; personalDriftRate: number; personalTwinkleRate: number; live: WiggleLive; curX: number; curY: number; driftFromX: number; driftFromY: number; driftToX: number; driftToY: number; driftState: 'animating' | 'waiting'; driftElapsed: number; driftDuration: number; curOpacity: number; curScale: number; twkFromOp: number; twkToOp: number; twkFromScale: number; twkToScale: number; twkState: 'animating' | 'waiting'; twkElapsed: number; twkDuration: number; constructor(ctx: CanvasRenderingContext2D, width: number, height: number, live: WiggleLive); private randDrift; private pickDriftDuration; private pickTwkDuration; tick(dt: number): void; draw(): void; } export declare function mulberry32(seed: number): () => number; export type Star = { xPct: number; yPct: number; sizeT: number; durationT: number; phase: number; }; export declare function renderStarfield(ctx: CanvasRenderingContext2D, stars: Star[], p: ShimmeringDotsStarfieldConfig, width: number, height: number, t: number): void; export type GridCell = { x: number; y: number; }; export declare function renderTwist(ctx: CanvasRenderingContext2D, cells: GridCell[], p: ShimmeringDotsTwistConfig, width: number, height: number, t: number): void; export type ShimmerCell = { x: number; y: number; col: number; row: number; phase: number; freq: number; }; export declare function renderShimmer(ctx: CanvasRenderingContext2D, cells: ShimmerCell[], p: ShimmeringDotsShimmerConfig, t: number): void; export type Floater = { x: number; y: number; sizeT: number; speedT: number; driftDir: number; vx: number; vy: number; birth: number; lifetime: number; peak: number; }; export type TouchForce = { x: number; y: number; t: number; }; export declare const FLOAT_DECAY = 0.3; export declare function spawnFloater(width: number, height: number, p: ShimmeringDotsDisplaceConfig, now: number, ageOffset?: number): Floater; export declare function updateFloaters(floaters: Floater[], forces: TouchForce[], p: ShimmeringDotsDisplaceConfig, width: number, height: number, now: number, dt: number): void; export declare function drawFloaters(ctx: CanvasRenderingContext2D, floaters: Floater[], p: ShimmeringDotsDisplaceConfig, now: number): void; export type FieldCell = { px: number; py: number; u: number; v: number; len: number; vd: number; }; export declare function buildFieldCells(width: number, height: number, pitch: number): FieldCell[]; export declare const ORGANIC_GRID = 0.02; export declare const AURORA_GRID = 0.018; export declare const MORPH_GRID = 0.018; export declare function renderOrganic(ctx: CanvasRenderingContext2D, cells: FieldCell[], p: ShimmeringDotsOrganicConfig, t: number): void; export declare function renderAurora(ctx: CanvasRenderingContext2D, cells: FieldCell[], p: ShimmeringDotsAuroraConfig, t: number): void; export declare function renderMorph(ctx: CanvasRenderingContext2D, cells: FieldCell[], p: ShimmeringDotsMorphConfig, t: number): void; export declare class Meteor { state: 'idle' | 'active'; timer: number; dx: number; dy: number; px: number; py: number; aMin: number; aLen: number; cross: number; reach: number; speed: number; f: number; spawn(width: number, height: number, p: ShimmeringDotsMeteorsConfig): void; update(dt: number, width: number, height: number, p: ShimmeringDotsMeteorsConfig): void; private fadeOutStart; opacity(p: ShimmeringDotsMeteorsConfig): number; } export declare function renderMeteors(ctx: CanvasRenderingContext2D, meteors: Meteor[], p: ShimmeringDotsMeteorsConfig, width: number, height: number, dt: number): void; export declare const GRID_COLORS = "#2a2a2a,#3b3b3b,#525252";