import { type Node } from "../../../../../../pm/model.js";
import type { EditorView } from "../../../../../../pm/view.js";
import type { Logger2 } from "../../../../../../logger.js";
import { type DropCursorParams } from "./dnd-drop-cursor.js";
import "./dnd.css";
export type DnDControlHandler = {
    canDrag(): boolean;
    control_handleMouseDown: React.MouseEventHandler<HTMLButtonElement>;
    control_handleMouseMove: React.MouseEventHandler<HTMLButtonElement>;
    control_handleMouseUp: React.MouseEventHandler<HTMLButtonElement>;
    control_handleMouseLeave: React.MouseEventHandler<HTMLButtonElement>;
};
interface TableHandler {
    update(node: Node): void;
    destroy(): void;
}
export type YfmTableDnDHandlerParams = {
    cellNode: Node;
    cellGetPos: () => number | undefined;
    logger: Logger2.ILogger;
    dropCursor?: DropCursorParams;
};
export declare class YfmTableDnDHandler implements TableHandler {
    private readonly _rowHandler;
    private readonly _columnHandler;
    get row(): DnDControlHandler;
    get column(): DnDControlHandler;
    constructor(view: EditorView, params: YfmTableDnDHandlerParams);
    update(node: Node): void;
    destroy(): void;
}
export {};
