import { NemiCurve } from './nemiCurve'; import { NemiShape } from './nemiShapes'; import { Position, SuperPath2D } from './SuperPath2D'; type DaumiElement = { innerCurve: NemiCurve; outerCurve: NemiCurve; length: number; startsAtPercentage: number; endsAtPercentage: number; percentage: number; connectsToPrevious: boolean; }; export type DaumiShape = { elements: DaumiElement[]; totalLengthOuter: number; totalLengthInner: number; }; export declare const nemiToDaumiShape: (_nemiShape: NemiShape, { width, height }: { width: number; height: number; }) => DaumiShape; export declare const getDaumiElementLocation: (daumiShape: DaumiShape, _percentage: number) => { element: DaumiElement; percentageOnElement: number; }; type DaumiInstruction = { startPercentage: number; endPercentage: number; element: DaumiElement; }; export declare const getDaumiInstructions: (daumiShape: DaumiShape, { startPercentage, endPercentage, reverse, }: { startPercentage: number; endPercentage: number; reverse: boolean; }) => DaumiInstruction[]; export declare const getPointOnDaumiShape: (daumiShape: DaumiShape, percentage: number) => Position; export declare const makeDaumiCurve: (daumiShape: DaumiShape, path: SuperPath2D, { startPercentage, endPercentage, lanePercentage, reverse, }: { startPercentage: number; endPercentage: number; lanePercentage: number; reverse?: boolean | undefined; }) => SuperPath2D; export declare const translateDaumiShape: (daumiShape: DaumiShape, { dx, dy }: { dx: number; dy: number; }) => { elements: { innerCurve: { 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"; }; outerCurve: { 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"; }; length: number; startsAtPercentage: number; endsAtPercentage: number; percentage: number; connectsToPrevious: boolean; }[]; totalLengthOuter: number; totalLengthInner: number; }; export declare const centerDaumiShape: (daumiShape: DaumiShape, { width, height }: { width: number; height: number; }) => { elements: { innerCurve: { 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"; }; outerCurve: { 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"; }; length: number; startsAtPercentage: number; endsAtPercentage: number; percentage: number; connectsToPrevious: boolean; }[]; totalLengthOuter: number; totalLengthInner: number; }; export declare const scaleDaumiShape: (daumiShape: DaumiShape, scale: number) => DaumiShape; export declare const lengthToPercentage: (daumiShape: DaumiShape, length: number, laneRadius: number) => number; export declare const percentageToLength: (daumiShape: DaumiShape, startPercentage: number, endPercentage: number, laneRadius: number) => number; export {};