import { Point } from '@syncfusion/ej2-pdf';
export declare class _PdfIntersection {
    _x: number;
    _y: number;
    _toSource: number;
    _toClip: number;
    constructor(s1: _PdfVertex, s2: _PdfVertex, c1: _PdfVertex, c2: _PdfVertex);
    _isValid(): boolean;
}
export declare class _PdfPolygon {
    _first: _PdfVertex;
    private _vertices;
    private _lastUnprocessed;
    private _firstIntersect;
    private _arrayVertices;
    _globalIntersections: Point[];
    constructor(p: Point[], arrayVertices?: boolean);
    _addVertex(vertex: _PdfVertex): void;
    _insertVertex(vertex: _PdfVertex, start: _PdfVertex, end: _PdfVertex): void;
    _getNext(v: _PdfVertex): _PdfVertex;
    _getFirstIntersect(): _PdfVertex;
    _hasUnprocessed(): boolean;
    _getPoints(): Point[];
    _clip(clip: _PdfPolygon, sourceForwards: boolean, clipForwards: boolean): Point[][];
    private _computeIntersections;
    private _setEntryExitFlags;
    private _constructClippedPolygons;
    private _handleEmptyResult;
}
export declare class _PdfVertex {
    _x: number;
    _y: number;
    _next: _PdfVertex;
    _prev: _PdfVertex;
    _corresponding: _PdfVertex;
    _distance: number;
    _isEntry: boolean;
    _isIntersection: boolean;
    _visited: boolean;
    constructor(x: number, y: number);
    _createIntersection(x: number, y: number, distance: number): _PdfVertex;
    _visit(): void;
    _equals(v: _PdfVertex): boolean;
    _isInside(poly: _PdfPolygon): boolean;
}
