import { Bound } from '../../utils/bound.js';
import { PointLocation } from '../../utils/point-location.js';
import { type IVec } from '../../utils/vec.js';
import type { HitTestOptions } from '../edgeless-element.js';
import { SurfaceElement } from '../surface-element.js';
import type { IBrush } from './types.js';
export declare class BrushElement extends SurfaceElement<IBrush> {
    private _testCanvas;
    private _testCtx;
    protected _connectable: boolean;
    get points(): number[][];
    get color(): string;
    get lineWidth(): number;
    hitTest(px: number, py: number, options?: HitTestOptions): boolean;
    render(ctx: CanvasRenderingContext2D, matrix: DOMMatrix): void;
    applyUpdate(props: Partial<IBrush>): void;
    containedByBounds(bounds: Bound): boolean;
    getNearestPoint(point: IVec): IVec;
    intersectWithLine(start: IVec, end: IVec): PointLocation[] | null;
    getRelativePointLocation(position: IVec): PointLocation;
}
//# sourceMappingURL=brush-element.d.ts.map