import { ElementNode } from '../../util/xml.js'; import { IDMLSpreadPackageContext } from '../SpreadPackage.js'; import { Sprite, SpriteOpts } from './Sprite.js'; import { GeometricBounds } from '../../types/index.js'; export type GeometryPathType = 'normalPath' | 'clippingPath' | 'textPath' | 'motionPath' | 'guidePath'; export type PathGeometry = { open: boolean; geometryPathType: GeometryPathType; pathPoints: PathPoint[]; }; export type GeometricSpriteOpts = SpriteOpts & { pathGeometry: PathGeometry[]; }; export type PathPoint = { anchor: [number, number]; leftDirection: [number, number]; rightDirection: [number, number]; }; export type PathCommandMove = { type: 'move'; x: number; y: number; }; export type PathCommandLine = { type: 'line'; x: number; y: number; }; export type PathCommandCubicBezier = { type: 'cubicBezier'; x1: number; y1: number; x2: number; y2: number; x: number; y: number; }; export type PathCommandClose = { type: 'close'; }; export type PathCommand = PathCommandMove | PathCommandLine | PathCommandCubicBezier | PathCommandClose; export declare class GeometricSprite extends Sprite { private pathGeometry; constructor(id: string, type: string, opts: GeometricSpriteOpts, context: IDMLSpreadPackageContext); setPaths(newPaths: { open: boolean; pathPoints: PathPoint[]; }[]): void; getPaths(): { open: boolean; pathPoints: { anchor: [number, number]; leftDirection: [number, number]; rightDirection: [number, number]; }[]; }[]; getGeometricBounds(): GeometricBounds; private static isLineSegment; getPath(): PathCommand[][]; static parsePathGeometry(element: Element, allowNoPathGeometry?: boolean): { pathPoints: { anchor: [number, number]; leftDirection: [number, number]; rightDirection: [number, number]; }[]; open: boolean; geometryPathType: "textPath" | "normalPath" | "clippingPath" | "motionPath" | "guidePath"; }[]; static injectPathGeometry(baseElement: ElementNode, pathGeometry: PathGeometry[]): ElementNode; serializeGeometricSprite(): ElementNode; } //# sourceMappingURL=GeometricSprite.d.ts.map