import { MetalFxInstance } from '../renderer/core'; import { ReflectionTarget } from './constants'; export type { ReflectionTarget } from './constants'; export interface ReflectionOccluderConfig { enabled: boolean; /** Occluder radius, CSS px — how "big" the cursor is as a light blocker. */ radius: number; /** Peak shadow depth (0..1) with the pointer right at the target's edge. */ strength: number; /** Penumbra growth: band half-height multiplier at the anchor's edge. */ penumbra: number; /** How much depth is lost as the pointer moves from target edge (0) to * anchor edge (1). 0 = same shadow everywhere in the gap. */ falloff: number; /** Fade-in distance at the gap's ends, as a multiple of `radius`. */ edgeFade: number; /** Band profile. 1 = smooth triangle, 0 = hard-edged plateau. */ softness: number; /** Repaint throttle while the pointer moves, ms. */ repaintMs: number; } export declare const REFLECTION_OCCLUDER_DEFAULTS: Readonly; export declare const REFLECTION_OCCLUDER: ReflectionOccluderConfig; export declare function setReflectionOccluderConfig(patch: Partial): void; export declare function resetReflectionOccluderConfig(): void; export declare function addReflectionTarget(el: HTMLElement, anchor: MetalFxInstance, anchorEl: HTMLElement, strength?: number): ReflectionTarget | null; export declare function removeReflectionTarget(el: HTMLElement): void; export declare function paintReflections(): void;