import { GraphicsPath } from '../draw/GraphicsPath';
import { DataBuffer } from './DataBuffer';
export declare class PathSegment {
    commands: DataBuffer;
    data: DataBuffer;
    morphData: DataBuffer;
    prev: PathSegment;
    next: PathSegment;
    isReversed: boolean;
    private static _counter;
    id: any;
    private startPoint;
    private endPoint;
    isValidFill: boolean;
    constructor(commands: DataBuffer, data: DataBuffer, morphData: DataBuffer, prev: PathSegment, next: PathSegment, isReversed: boolean);
    static FromDefaults(isMorph: boolean): PathSegment;
    moveTo(x: number, y: number): void;
    morphMoveTo(x: number, y: number, mx: number, my: number): void;
    lineTo(x: number, y: number): void;
    morphLineTo(x: number, y: number, mx: number, my: number): void;
    curveTo(cpx: number, cpy: number, x: number, y: number): void;
    morphCurveTo(cpx: number, cpy: number, x: number, y: number, mcpx: number, mcpy: number, mx: number, my: number): void;
    /**
     * Returns a shallow copy of the segment1 with the "isReversed" flag set.
     * Reversed segments play themselves back in reverse when they're merged into the final
     * non-segmented path1.
     * Note: Don't modify the original, or the reversed copy, after this operation!
     */
    toReversed(): PathSegment;
    clone(): PathSegment;
    storeStartAndEnd(): void;
    connectsTo(other: PathSegment): boolean;
    startConnectsTo(other: PathSegment): boolean;
    flipDirection(): void;
    serializeAJS(shape: GraphicsPath, morphShape: GraphicsPath, lastPosition: {
        x: number;
        y: number;
    }): void;
    private _serializeReversedAJS;
}
//# sourceMappingURL=PathSegment.d.ts.map