import '../connector/connector-handle.js';
import '../auto-complete/edgeless-auto-complete.js';
import { LitElement, nothing } from 'lit';
import type { EdgelessElement } from '../../../../_common/types.js';
import { type IVec } from '../../../../surface-block/index.js';
import type { EdgelessPageBlockComponent } from '../../edgeless-page-block.js';
import { type ResizeMode } from '../resize/resize-handles.js';
export type SelectedRect = {
    left: number;
    top: number;
    width: number;
    height: number;
    borderWidth: number;
    borderStyle: string;
    rotate: number;
};
declare const EdgelessSelectedRect_base: typeof LitElement & import("@blockeditor/global/utils").Constructor<import("@blockeditor/lit").DisposableClass>;
export declare class EdgelessSelectedRect extends EdgelessSelectedRect_base {
    static enabledWarnings: never[];
    static styles: import("lit").CSSResult;
    edgeless: EdgelessPageBlockComponent;
    private _selectedRect;
    private _isResizing;
    private _isNoteWidthLimit;
    private _isNoteHeightLimit;
    toolbarVisible: boolean;
    setToolbarVisible: (visible: boolean) => void;
    private _resizeManager;
    private _cursorRotate;
    private _propDiposables;
    private _dragEndCallback;
    constructor();
    get dragging(): boolean;
    get selection(): import("../../services/selection-manager.js").EdgelessSelectionManager;
    get page(): import("@blockeditor/store").Page;
    get slots(): {
        viewportUpdated: import("@blockeditor/global/utils").Slot<{
            zoom: number;
            center: IVec;
        }>;
        selectedRectUpdated: import("@blockeditor/global/utils").Slot<{
            type: "select" | "resize" | "move";
            delta?: {
                x: number;
                y: number;
            } | undefined;
            dragging?: boolean | undefined;
        }>;
        hoverUpdated: import("@blockeditor/global/utils").Slot<void>;
        edgelessToolUpdated: import("@blockeditor/global/utils").Slot<import("../../../../_common/types.js").EdgelessTool>;
        reorderingElements: import("@blockeditor/global/utils").Slot<import("../../../../std.js").ReorderingAction<EdgelessElement>>;
        zoomUpdated: import("@blockeditor/global/utils").Slot<import("../zoom/zoom-toolbar.js").ZoomAction>;
        pressShiftKeyUpdated: import("@blockeditor/global/utils").Slot<boolean>;
        cursorUpdated: import("@blockeditor/global/utils").Slot<string>;
        copyAsPng: import("@blockeditor/global/utils").Slot<{
            blocks: import("../../../../_common/types.js").TopLevelBlockModel[];
            shapes: import("../../../../surface-block/index.js").CanvasElement[];
        }>;
        subpageLinked: import("@blockeditor/global/utils").Slot<{
            pageId: string;
        }>;
        subpageUnlinked: import("@blockeditor/global/utils").Slot<{
            pageId: string;
        }>;
        pageLinkClicked: import("@blockeditor/global/utils").Slot<{
            pageId: string;
            blockId?: string | undefined;
        }>;
        tagClicked: import("@blockeditor/global/utils").Slot<{
            tagId: string;
        }>;
        readonlyUpdated: import("@blockeditor/global/utils").Slot<boolean>;
        draggingAreaUpdated: import("@blockeditor/global/utils").Slot<void>;
        navigatorSettingUpdated: import("@blockeditor/global/utils").Slot<{
            hideToolbar?: boolean | undefined;
            blackBackground?: boolean | undefined;
            fillScreen?: boolean | undefined;
        }>;
        navigatorFrameChanged: import("@blockeditor/global/utils").Slot<import("../../../../models.js").FrameBlockModel>;
        fullScrennToggled: import("@blockeditor/global/utils").Slot<void>;
        elementUpdated: import("@blockeditor/global/utils").Slot<{
            id: string;
            props?: Record<string, unknown> | undefined;
        }>;
        elementAdded: import("@blockeditor/global/utils").Slot<{
            id: string;
        }>;
        elementRemoved: import("@blockeditor/global/utils").Slot<{
            id: string;
            element: EdgelessElement;
        }>;
        elementResizeStart: import("@blockeditor/global/utils").Slot<void>;
        elementResizeEnd: import("@blockeditor/global/utils").Slot<void>;
    };
    get surface(): import("../../../../index.js").SurfaceBlockComponent;
    get zoom(): number;
    get resizeMode(): ResizeMode;
    private _shouldRenderSelection;
    private _onDragStart;
    private _onDragMove;
    private _onDragRotate;
    private _onDragEnd;
    private _updateCursor;
    private _updateSelectedRect;
    /**
     * @param refresh indicate whether to completely refresh the state of resize manager, otherwise only update the position
     */
    private _updateResizeManagerState;
    private _updateOnViewportChange;
    private _initSelectedSlot;
    private _updateOnSelectionChange;
    private _updateOnElementChange;
    firstUpdated(): void;
    private _canAutoComplete;
    private _canRotate;
    render(): typeof nothing | import("lit").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'edgeless-selected-rect': EdgelessSelectedRect;
    }
}
export {};
//# sourceMappingURL=edgeless-selected-rect.d.ts.map