import { CanvasTextFontFamily, CanvasTextFontStyle, CanvasTextFontWeight } from '../../consts.js';
import type { RoughCanvas } from '../../rough/canvas.js';
import type { Bound } from '../../utils/bound.js';
import type { PointLocation } from '../../utils/point-location.js';
import type { IVec } from '../../utils/vec.js';
import { TextAlign } from '../consts.js';
import type { HitTestOptions } from '../edgeless-element.js';
import { SurfaceElement } from '../surface-element.js';
import type { ITextDelta } from '../text/types.js';
import { SHAPE_TEXT_FONT_SIZE } from './consts.js';
import type { IShape } from './types.js';
export declare class ShapeElement extends SurfaceElement<IShape> {
    protected _localProps: string[];
    get textDisplay(): boolean;
    set textDisplay(val: boolean);
    get shapeType(): import("./consts.js").ShapeType;
    get radius(): number;
    get filled(): boolean;
    get fillColor(): string;
    get strokeWidth(): number;
    get strokeColor(): string;
    get strokeStyle(): import("../../consts.js").StrokeStyle;
    get roughness(): number;
    get realStrokeColor(): string;
    get realFillColor(): string;
    get shapeStyle(): import("../../consts.js").ShapeStyle;
    get text(): import("yjs").Text | undefined;
    get color(): string;
    get fontSize(): SHAPE_TEXT_FONT_SIZE;
    get fontFamily(): CanvasTextFontFamily;
    get fontWeight(): CanvasTextFontWeight;
    get fontStyle(): CanvasTextFontStyle;
    get textAlign(): TextAlign;
    get textHorizontalAlign(): "center" | TextAlign;
    get textVerticalAlign(): "center" | import("../consts.js").TextVerticalAlign;
    get wrapTextDeltas(): ITextDelta[];
    get font(): string;
    get horizontalOffset(): number;
    verticalOffset(lines: ITextDelta[][], lineHeight: number): number;
    hitTest(x: number, y: number, options: HitTestOptions): boolean;
    containedByBounds(bounds: Bound): boolean;
    intersectWithLine(start: IVec, end: IVec): PointLocation[] | null;
    getNearestPoint(point: IVec): IVec;
    getRelativePointLocation(point: IVec): PointLocation;
    render(ctx: CanvasRenderingContext2D, matrix: DOMMatrix, rc: RoughCanvas): void;
    private _renderText;
}
//# sourceMappingURL=shape-element.d.ts.map