import { Position, SuperPath2D } from './SuperPath2D'; export type NemiCurveArc = { type: 'arc'; radians: number; centerPoint: Position; radius: number; startAngle: number; }; export type NemiCurveBezier = { type: 'bezier'; startPoint: Position; controlPoint1: Position; controlPoint2: Position; endPoint: Position; }; type NemiCurveLine = { type: 'line'; startPoint: Position; endPoint: Position; }; export type NemiCurve = NemiCurveLine | NemiCurveArc | NemiCurveBezier; export declare function calculateCurveLength(curve: NemiCurve): number; export declare const makePartialCurve: (curve: NemiCurve, path: SuperPath2D, { startPercentage, endPercentage, }: { startPercentage: number; endPercentage: number; }) => void; export declare function translateNemiCurve(curve: NemiCurve, { dx, dy }: { dx?: number | undefined; dy?: number | undefined; }): { startPoint: { x: number; y: number; }; endPoint: { x: number; y: number; }; type: "line"; } | { centerPoint: { x: number; y: number; }; type: "arc"; radians: number; radius: number; startAngle: number; } | { startPoint: { x: number; y: number; }; controlPoint1: { x: number; y: number; }; controlPoint2: { x: number; y: number; }; endPoint: { x: number; y: number; }; type: "bezier"; }; export declare const getBoundsOfNemiCurves: (nemiCurves: NemiCurve[]) => { xMin: number; xMax: number; yMin: number; yMax: number; xCenter: number; yCenter: number; width: number; height: number; }; export declare const getTweenBetweenCurves: (curveA: NemiCurve, curveB: NemiCurve, t: number) => { startPoint: { x: number; y: number; }; endPoint: { x: number; y: number; }; type: 'line'; } | { centerPoint: { x: number; y: number; }; radius: number; startAngle: number; radians: number; type: 'arc'; } | { startPoint: { x: number; y: number; }; controlPoint1: { x: number; y: number; }; controlPoint2: { x: number; y: number; }; endPoint: { x: number; y: number; }; type: 'bezier'; }; export declare const scaleNemiCurve: (curve: NemiCurve, scale: number) => { startPoint: { x: number; y: number; }; endPoint: { x: number; y: number; }; type: 'line'; } | { centerPoint: { x: number; y: number; }; radius: number; type: 'arc'; radians: number; startAngle: number; } | { startPoint: { x: number; y: number; }; controlPoint1: { x: number; y: number; }; controlPoint2: { x: number; y: number; }; endPoint: { x: number; y: number; }; type: 'bezier'; }; export {};