import type { ChartPadding } from "../draw/line"; /** * Composite sine squiggly — two overlapping frequencies with a breathing * amplitude envelope. Matches the original web LiveChart loading animation. * * amplitude = base * (0.4 + 0.6 * sin(0.8 * t·speed)) // 0.4×→1.0× base * y = centerY + amplitude * (sin(0.035*x + 1.2*t·speed) + 0.45*sin(0.08*x + 2.1*t·speed)) * * `base` (default `14`) scales the wave height; `speed` (default `1`) scales the * time phase so the ripple/breathing runs faster or slower (`0` freezes it). */ export declare function squigglyYAt(x: number, centerY: number, t: number, base?: number, speed?: number): number; /** * Build a flat [x0,y0,x1,y1,...] point array for a standalone squiggly line * spanning the full chart area (used in loading / empty state). * Points are spaced ~4px apart for smooth curves. * Pass `out` to reuse a caller-owned frame scratch. */ export declare function buildSquigglyPts(canvasWidth: number, canvasHeight: number, padding: ChartPadding, t: number, base?: number, speed?: number, out?: number[]): number[]; /** * Given a real flat-pts array (from buildLinePoints), replace each Y with the * squiggly Y at the same X. Used during the morph reveal. * Pass `out` to reuse a caller-owned frame scratch. */ export declare function squigglifyPts(flatPts: number[], t: number, centerY: number, base?: number, speed?: number, out?: number[]): number[]; /** * Smoothstep — maps t ∈ [0,1] to a smooth 0→1 curve (no clamping required * when t is already in range, but clamps gracefully outside). */ export declare function smoothstep(t: number): number; /** * Blend two flat-pts arrays center-out, driven by morphT ∈ [0,1]. * Points near the horizontal centre of the chart reveal first; edges last. * * For each point, a per-point weight is computed: * distFromCentre = |x - chartCentreX| / (chartW / 2) // 0=centre, 1=edge * weight = smoothstep((morphT - distFromCentre * 0.5) / 0.5) * blendedY = fromY + (toY - fromY) * weight * Pass `out` to reuse a caller-owned frame scratch. */ export declare function blendPtsY(from: number[], to: number[], morphT: number, padding: ChartPadding, canvasWidth: number, out?: number[]): number[]; //# sourceMappingURL=squiggly.d.ts.map