import '../../../assert/js/assert.js';
import '../../../globals.js';
/**
 * A line-segment edge with integer coordinates, as part of the rendering
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import Bounds2 from '../../../dot/js/Bounds2.js';
import Matrix3 from '../../../dot/js/Matrix3.js';
import Vector2 from '../../../dot/js/Vector2.js';
import { BoundedSubpath, RationalIntersection, RenderPath } from '../imports.js';
export default class IntegerEdge {
    readonly renderPath: RenderPath;
    readonly x0: number;
    readonly y0: number;
    readonly x1: number;
    readonly y1: number;
    readonly bounds: Bounds2;
    readonly intersections: RationalIntersection[];
    constructor(renderPath: RenderPath, x0: number, y0: number, x1: number, y1: number);
    hasBoundsIntersectionWith(other: IntegerEdge): boolean;
    static hasBoundsIntersection(boundsA: Bounds2, boundsB: Bounds2, someXEqual: boolean, someYEqual: boolean): boolean;
    static createTransformed(path: RenderPath, toIntegerMatrix: Matrix3, p0: Vector2, p1: Vector2): IntegerEdge | null;
    /**
     * Returns a list of integer edges (tagged with their respective RenderPaths) that are clipped to within the given
     * bounds.
     *
     * Since we also need to apply the to-integer-coordinate-frame conversion at the same time, this step is included.
     */
    static clipScaleToIntegerEdges(boundedSubpaths: BoundedSubpath[], bounds: Bounds2, toIntegerMatrix: Matrix3): IntegerEdge[];
    /**
     * Returns a list of integer edges (tagged with their respective RenderPaths) that are transformed to within the
     * integer coordinates.
     */
    static scaleToIntegerEdges(paths: RenderPath[], toIntegerMatrix: Matrix3): IntegerEdge[];
}
//# sourceMappingURL=IntegerEdge.d.ts.map