import { ShapeTextWarp } from '../../../../contracts/src/index.js'; export type WordArtWarpPoint = { x: number; y: number; }; export type WordArtWarpGeometry = { paths: WordArtWarpPoint[][]; /** One boundary bends a baseline; two or more boundaries define a glyph envelope. */ kind: 'baseline' | 'envelope'; }; export type WordArtWarpPath = { d: string; fidelity: 'baseline' | 'envelope'; /** Polyline length of the evaluated preset path in layout coordinates. */ length: number; }; export type WordArtBaselineBand = { geometry: WordArtWarpGeometry; path: WordArtWarpPath; }; export declare function resolveWordArtWarpGeometry(warp: ShapeTextWarp, width: number, height: number, top?: number): WordArtWarpGeometry | null; /** * Resolve the centerline between two adjacent authored warp boundaries. * * A small family of DrawingML presets uses shared boundaries to compose * successive text bands (for example textButton's upper/center/lower paths). * Word lays each line on the corresponding band centerline and preserves the * glyph outlines instead of stretching the ink through the whole envelope. */ export declare function resolveWordArtAdjacentBandBaseline(geometry: WordArtWarpGeometry, bandIndex: number): WordArtBaselineBand | null; /** Baseline compatibility surface used by the SVG textPath renderer and diagnostics. */ export declare function resolveWordArtWarpPath(warp: ShapeTextWarp, width: number, height: number, top?: number): WordArtWarpPath | null; export declare function pointAtPath(points: readonly WordArtWarpPoint[], progress: number): WordArtWarpPoint; /** * Resolve the DrawingML text-warp percentage on a flattened boundary path. * ECMA-376 §20.1.9.19 steps 6–8 require travelled distance after flattening, * not the curve's command, sample, or angle parameter. */ export declare function pointAtWarpParameter(points: readonly WordArtWarpPoint[], progress: number): WordArtWarpPoint;