import type { Path } from "./basic.mjs";
import type { Schema } from "./propsUsingReact.mjs";
import type { RuleType } from "./ruleGroups.mjs";
import type { RuleGroupTypeAny } from "./ruleGroupsIC.mjs";
export type DndDropTargetType = "rule" | "ruleGroup" | "inlineCombinator";
export type DraggedItem = (RuleType & {
	path: Path
	qbId: string
}) | (RuleGroupTypeAny & {
	path: Path
	qbId: string
});
export type DropEffect = "move" | "copy";
export interface DropResult {
	path: Path;
	type: DndDropTargetType;
	dropEffect?: DropEffect;
	groupItems?: boolean;
	qbId: string;
	getQuery: Schema<any, any>["getQuery"];
	dispatchQuery: Schema<any, any>["dispatchQuery"];
}
export interface DragCollection {
	isDragging: boolean;
	dragMonitorId: string | symbol;
}
export interface DropCollection {
	isOver: boolean;
	dropMonitorId: string | symbol;
	dropEffect?: DropEffect;
	groupItems?: boolean;
}
