import { Component } from "react";
import "../style/MouseSelection.css";
import type { T_LTWH } from "../types.js";
declare type Coords = {
    x: number;
    y: number;
};
declare type State = {
    locked: boolean;
    start: Coords | null;
    end: Coords | null;
};
declare type Props = {
    onSelection: (startTarget: HTMLElement, boundingRect: T_LTWH, resetSelection: () => void) => void;
    onDragStart: () => void;
    onDragEnd: () => void;
    shouldStart: (event: MouseEvent) => boolean;
    onChange: (isVisible: boolean) => void;
};
declare class MouseSelection extends Component<Props, State> {
    state: State;
    root?: HTMLElement;
    reset: () => void;
    getBoundingRect(start: Coords, end: Coords): T_LTWH;
    componentDidUpdate(): void;
    componentDidMount(): void;
    shouldRender(boundingRect: T_LTWH): boolean;
    render(): JSX.Element;
}
export default MouseSelection;
