/** * A pre-parsed path ready for fast per-frame warping. * Each entry is an "op": { cmd, coords } where coords is a flat Float64Array * of absolute (u,v) pairs in unit space. * * @typedef {{ cmd: string, coords: Float64Array }[]} PreparedOps */ /** * Pre-parse and normalize a path `d` string for fast warping. * Resolves relative coords to absolute, converts H/V to L, * converts A to C (cubic beziers), and packs all coordinate * pairs into flat typed arrays. * * @param {string} d - SVG path data in 0–1 unit space * @returns {PreparedOps} */ export function preparePath(d: string): PreparedOps; /** * Warp pre-parsed path ops through bilinear interpolation. * No parsing, no regex, no object allocation — just math and string concat. * * @param {PreparedOps} ops - Pre-parsed path ops from preparePath() * @param {number[]} p - Quad points [P0x,P0y, P1x,P1y, P2x,P2y, P3x,P3y] * @returns {string} Warped SVG path `d` string */ export function warpPrepared(ops: PreparedOps, p: number[]): string; /** * Pre-parse all `d` attributes in an SVG content string. * Returns an array of { before, ops, after } for each found, * plus any remaining text. Used at defineDecal time. * * @param {string} svgContent * @returns {{ fragments: Array<{before: string, ops: PreparedOps, after: string}>, tail: string }} */ export function prepareDecalContent(svgContent: string): { fragments: Array<{ before: string; ops: PreparedOps; after: string; }>; tail: string; }; /** * Warp pre-parsed decal content onto a projected quad. Fast per-frame path. * * @param {{ fragments: Array, tail: string }} prepared - From prepareDecalContent() * @param {number[]} quad - [P0x,P0y, P1x,P1y, P2x,P2y, P3x,P3y] * @returns {string} */ export function warpPreparedContent(prepared: { fragments: any[]; tail: string; }, quad: number[]): string; /** * A pre-parsed path ready for fast per-frame warping. * Each entry is an "op": { cmd, coords } where coords is a flat Float64Array * of absolute (u,v) pairs in unit space. */ export type PreparedOps = { cmd: string; coords: Float64Array; }[];