import { PERIM_SAMPLES } from '../perf-config'; export { PERIM_SAMPLES }; export interface GlowOptions { width: number; height: number; cornerRadius: number; kind: 'pill' | 'circle'; /** Master multiplier for absolute SVG units (stroke widths, blur, * fade-circle radius). 1 is the canonical 1× rendering. Set to 2 when * the host element is rendered at a 2× layout (e.g. CSS zoom: 2) so * the glow grows proportionally. */ scale?: number; /** * Point mode (custom-mask instances). `samplePoints` are box-local CSS-px * positions inside the mask where luminance is sampled and the hotspot can * sit; `maskDataUrl` is the mask rendered white-on-transparent, used to clip * the glow to the glyphs instead of the ring band. */ samplePoints?: Pt[]; maskDataUrl?: string; } export interface Pt { x: number; y: number; } export interface PerimSample extends Pt { arc: number; } export declare function rrPerim(w: number, h: number, r: number): number; export declare function shapePerim(w: number, h: number, r: number, kind: 'pill' | 'circle'): number; export declare function sampleAtArc(s: number, w: number, h: number, r: number, inset: number, outward: number, kind: 'pill' | 'circle', out?: Pt): Pt; /** * Inverse of `sampleAtArc` at inset 0: the arc-length position on the outline * nearest a box-local point. Points off the outline project onto it. */ export declare function arcAtPoint(x: number, y: number, w: number, h: number, r: number, kind: 'pill' | 'circle'): number; export declare function buildStaticBlobPath(halfLen: number, segments: number): string; export declare function tangentAngleAtArc(s: number, w: number, h: number, r: number, inset: number, kind: 'pill' | 'circle'): number; export declare function smoothstep(a: number, b: number, x: number): number; export declare function buildPerimTable(opts: GlowOptions): PerimSample[]; export declare function buildSvgMarkup(opts: GlowOptions, p: string): string;