@class TSUBezierPath, NSMutableArray, TSDBezierNode; @interface TSDBezierSubpath : NSObject @property (copy, nonatomic) NSMutableArray *nodes; @property (nonatomic, getter=isClosed) BOOL closed; @property (readonly, nonatomic) BOOL isRectangular; @property (readonly, nonatomic) TSUBezierPath *bezierPath; @property (readonly, nonatomic) TSDBezierNode *firstNode; @property (readonly, nonatomic) TSDBezierNode *lastNode; @property (readonly, nonatomic) BOOL allNodesSelected; @property (readonly, nonatomic) BOOL hasSelectedNode; @property (readonly, nonatomic) BOOL canDeleteSelectedNodes; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } nodeBounds; @property (readonly, nonatomic) BOOL closeIfEndpointsAreEqual; - (id)init; - (void)removeNode:(id)a0; - (void)addNode:(id)a0; - (id)description; - (void).cxx_destruct; - (BOOL)isCircular; - (void)removeLastNode; - (id)copyWithZone:(struct _NSZone { } *)a0; - (void)transformUsingAffineTransform:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a0; - (void)sharpenAllNodes; - (void)addNodesToArray:(id)a0; - (void)appendToBezierPath:(id)a0; - (void)appendToBezierPath:(id)a0 selectedNodesOnly:(BOOL)a1 fromIndex:(unsigned long long)a2; - (id)bezierNodeUnderPoint:(struct CGPoint { double x0; double x1; })a0 withTransform:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a1 andTolerance:(double)a2 returningType:(long long *)a3; - (void)convertToHobby; - (void)deleteSelectedNodes; - (void)deselectAllNodes; - (double)distanceToPoint:(struct CGPoint { double x0; double x1; })a0 elementIndex:(unsigned long long *)a1 tValue:(double *)a2 threshold:(double)a3; - (id)nodeAfterNode:(id)a0; - (id)nodePriorToNode:(id)a0; - (void)offsetSelectedEdgesByDelta:(struct CGPoint { double x0; double x1; })a0; - (void)offsetSelectedNodesByDelta:(struct CGPoint { double x0; double x1; })a0; - (void)reverseDirection; - (void)selectAllNodes; - (void)smoothNode:(id)a0; - (void)updateReflectedState; - (void)appendToBezierPath:(id)a0 selectedNodesOnly:(BOOL)a1 fromIndex:(unsigned long long)a2 closed:(BOOL)a3; - (BOOL)shouldChangePathToOpen:(long long)a0; - (id)splitEdgeAtIndex:(unsigned long long)a0 atPercentage:(double)a1; @end