Liferay.Loader.define('site-navigation-item-selector-web$dnd-core@11.1.3/lib/contracts', ['module', 'exports', 'require'], function (module, exports, require) {
    var define = undefined;
    var global = window;
    {
        import { invariant } from '@react-dnd/invariant';
        export function validateSourceContract(source) {
            invariant(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');
            invariant(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');
            invariant(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');
        }
        export function validateTargetContract(target) {
            invariant(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');
            invariant(typeof target.hover === 'function', 'Expected hover to be a function.');
            invariant(typeof target.drop === 'function', 'Expected beginDrag to be a function.');
        }
        export function validateType(type, allowArray) {
            if (allowArray && Array.isArray(type)) {
                type.forEach(t => validateType(t, false));
                return;
            }
            invariant(typeof type === 'string' || typeof type === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');
        }
    }
});
//# sourceMappingURL=contracts.js.map