import { LitElement, type PropertyValues, type TemplateResult } from 'lit';
import type { CssVariableName } from '../../../../../_common/theme/css-variables.js';
import type { ShapeType } from '../../../../../surface-block/elements/shape/consts.js';
import type { ShapeStyle } from '../../../../../surface-block/index.js';
import type { EdgelessPageBlockComponent } from '../../../edgeless-page-block.js';
export type ShapeName = ShapeType | 'roundedRect';
export interface Shape {
    name: ShapeName;
    svg: TemplateResult<1>;
}
declare const EdgelessShapeToolElement_base: typeof LitElement & import("@blockeditor/global/utils").Constructor<import("@blockeditor/lit").DisposableClass>;
export declare class EdgelessShapeToolElement extends EdgelessShapeToolElement_base {
    static styles: import("lit").CSSResult;
    shape: Shape;
    order: number;
    getContainerRect: () => DOMRect;
    handleClick: () => void;
    edgeless: EdgelessPageBlockComponent;
    private _shapeElement;
    private _backupShapeElement;
    shapeType: ShapeName;
    fillColor: CssVariableName;
    shapeStyle: ShapeStyle;
    strokeColor: CssVariableName;
    radius: number;
    private _transformMap;
    private _startCoord;
    private _dragging;
    private _isOutside;
    private _onDragStart;
    private _onDragMove;
    private _onDragEnd;
    private _onMouseMove;
    private _touchMove;
    private _onMouseUp;
    private _onTouchEnd;
    private _addShape;
    connectedCallback(): void;
    updated(changedProperties: PropertyValues<this>): void;
    render(): TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'edgeless-shape-tool-element': EdgelessShapeToolElement;
    }
}
export {};
//# sourceMappingURL=shape-tool-element.d.ts.map