import { Ref, ComputedRef } from 'vue';
import { Reactive } from '../../common/common';
import { Configs } from '../../common/configs';
import { Layouts, Rectangle } from '../../common/types';
import { NodeStates } from '../../models/node';
import { InteractionModes } from './core';
export type StopTrigger = "pointerup" | "click" | "manual";
export type SelectionType = "append" | "invert";
export interface BoxSelectionOption {
    stop: StopTrigger;
    type: SelectionType;
    withShiftKey: SelectionType | "same";
}
export declare function makeBoxSelectionMethods(container: Ref<SVGElement | undefined>, modes: InteractionModes, layouts: Readonly<Layouts>, nodeStates: NodeStates, selectedNodes: Reactive<Set<string>>, configs: Configs): {
    isBoxSelectionMode: ComputedRef<boolean>;
    selectionBox: Ref<Rectangle | undefined, Rectangle | undefined>;
    startBoxSelection: (options?: Partial<BoxSelectionOption>) => void;
    stopBoxSelection: () => void;
};
