import { MouseHoverOnAppObject, MousePressOnAppObject, MouseSelectAppObject, TapToSelectAppObject, TouchPressOnAppObject, KeyboardToClearSelection, } from "../Controller";
import { makeSelection } from "../Entities";
import { makeSelectedObjectPM } from "../PM";
import { ClearSelectionUCHook, makeHoverAppObject, makePressAppObject, makeSelectAppObject, } from "../UC";
export function setupSelection(appObjects) {
    const appObj = appObjects.getOrCreate("Selection");
    // Entities
    makeSelection(appObj);
    // UCs
    new ClearSelectionUCHook(appObj);
    makeHoverAppObject(appObj);
    makePressAppObject(appObj);
    makeSelectAppObject(appObj);
    // PMs
    makeSelectedObjectPM(appObj);
    // Controllers
    new MouseHoverOnAppObject(appObj);
    new MousePressOnAppObject(appObj);
    new TouchPressOnAppObject(appObj);
    new MouseSelectAppObject(appObj);
    new TapToSelectAppObject(appObj);
    new KeyboardToClearSelection(appObj);
    return appObj;
}
//# sourceMappingURL=setupSelection.js.map