/**
 * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
 * Node module: @schukai/monster
 * This file is licensed under the AGPLv3 License.
 * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
 * SPDX-License-Identifier: AGPL-3.0-only or COMMERCIAL
 */

/**
 * Main namespace for Monster.
 *
 * @namespace Monster
 * @author schukai GmbH
 */

// development/script/grep-exports.cjs
export {IsObject} from "./constraints/isobject.mjs"
export {Invalid} from "./constraints/invalid.mjs"
export {AndOperator} from "./constraints/andoperator.mjs"
export {OrOperator} from "./constraints/oroperator.mjs"
export {AbstractConstraint} from "./constraints/abstract.mjs"
export {IsArray} from "./constraints/isarray.mjs"
export {AbstractOperator} from "./constraints/abstractoperator.mjs"
export {Valid} from "./constraints/valid.mjs"
export {Logger, ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF} from "./logging/logger.mjs"
export {LogEntry} from "./logging/logentry.mjs"
export {ConsoleHandler} from "./logging/handler/console.mjs"
export {Handler} from "./logging/handler.mjs"
export {Formatter} from "./text/formatter.mjs"
export {Stylesheet} from "./dom/resource/link/stylesheet.mjs"
export {Data} from "./dom/resource/data.mjs"
export {Link} from "./dom/resource/link.mjs"
export {Script} from "./dom/resource/script.mjs"
export {Updater, addObjectWithUpdaterToElement} from "./dom/updater.mjs"
export {CustomControl} from "./dom/customcontrol.mjs"
export {getLocaleOfDocument} from "./dom/locale.mjs"
export {Theme, getDocumentTheme} from "./dom/theme.mjs"
export {Resource, KEY_DOCUMENT, KEY_QUERY, referenceSymbol} from "./dom/resource.mjs"
export {ResourceManager} from "./dom/resourcemanager.mjs"
export {getDocument, getWindow, getDocumentFragmentFromString} from "./dom/util.mjs"
export {
    DEFAULT_THEME,
    ATTRIBUTE_PREFIX,
    ATTRIBUTE_OPTIONS,
    ATTRIBUTE_OPTIONS_SELECTOR,
    ATTRIBUTE_THEME_PREFIX,
    ATTRIBUTE_THEME_NAME,
    ATTRIBUTE_UPDATER_ATTRIBUTES,
    ATTRIBUTE_UPDATER_SELECT_THIS,
    ATTRIBUTE_UPDATER_REPLACE,
    ATTRIBUTE_UPDATER_INSERT,
    ATTRIBUTE_UPDATER_INSERT_REFERENCE,
    ATTRIBUTE_UPDATER_REMOVE,
    ATTRIBUTE_UPDATER_BIND,
    ATTRIBUTE_TEMPLATE_PREFIX,
    ATTRIBUTE_ROLE,
    ATTRIBUTE_DISABLED,
    ATTRIBUTE_VALUE,
    ATTRIBUTE_OBJECTLINK,
    ATTRIBUTE_ERRORMESSAGE,
    TAG_SCRIPT,
    TAG_STYLE,
    TAG_LINK,
    ATTRIBUTE_ID,
    ATTRIBUTE_CLASS,
    ATTRIBUTE_TITLE,
    ATTRIBUTE_SRC,
    ATTRIBUTE_HREF,
    ATTRIBUTE_TYPE,
    ATTRIBUTE_NONCE,
    ATTRIBUTE_TRANSLATE,
    ATTRIBUTE_TABINDEX,
    ATTRIBUTE_SPELLCHECK,
    ATTRIBUTE_SLOT,
    ATTRIBUTE_PART,
    ATTRIBUTE_LANG,
    ATTRIBUTE_ITEMTYPE,
    ATTRIBUTE_ITEMSCOPE,
    ATTRIBUTE_ITEMREF,
    ATTRIBUTE_ITEMID,
    ATTRIBUTE_ITEMPROP,
    ATTRIBUTE_IS,
    ATTRIBUTE_INPUTMODE,
    ATTRIBUTE_ACCESSKEY,
    ATTRIBUTE_AUTOCAPITALIZE,
    ATTRIBUTE_AUTOFOCUS,
    ATTRIBUTE_CONTENTEDITABLE,
    ATTRIBUTE_DIR,
    ATTRIBUTE_DRAGGABLE,
    ATTRIBUTE_ENTERKEYHINT,
    ATTRIBUTE_EXPORTPARTS,
    ATTRIBUTE_HIDDEN,
    objectUpdaterLinkSymbol,
    customElementUpdaterLinkSymbol

} from "./dom/constants.mjs"
export {
    CustomElement,
    initMethodSymbol,
    assembleMethodSymbol,
    attributeObserverSymbol,
    registerCustomElement,
    getSlottedElements
} from "./dom/customelement.mjs"
export {
    findClosestObjectLink,
    addToObjectLink,
    removeObjectLink,
    hasObjectLink,
    getLinkedObjects,
    toggleAttributeToken,
    addAttributeToken,
    removeAttributeToken,
    containsAttributeToken,
    replaceAttributeToken,
    clearAttributeTokens,
    findClosestByAttribute,
    findClosestByClass
} from "./dom/attributes.mjs"
export {fireEvent, fireCustomEvent, findTargetElementFromEvent} from "./dom/events.mjs"
export {Factory} from "./dom/worker/factory.mjs"
export {Template} from "./dom/template.mjs"
export {domReady, windowReady} from "./dom/ready.mjs"
export {FocusManager} from "./dom/focusmanager.mjs"
export {ATTRIBUTEPREFIX, Assembler} from "./dom/assembler.mjs"
export {Translations} from "./i18n/translations.mjs"
export {Locale, parseLocale} from "./i18n/locale.mjs"
export {Formatter as I18nFormatter} from "./i18n/formatter.mjs"
export {Fetch} from "./i18n/providers/fetch.mjs"
export {Provider} from "./i18n/provider.mjs"
export {Message} from "./net/webconnect/message.mjs"
export {WebConnect as NetWebConnect} from "./net/webconnect.mjs"
export {
    internalSymbol,
    internalStateSymbol,
    instanceSymbol
} from "./constants.mjs"
export {MediaType, parseMediaType} from "./types/mediatype.mjs"
export {typeOf} from "./types/typeof.mjs"
export {ObserverList} from "./types/observerlist.mjs"
export {RandomID} from "./types/randomid.mjs"
export {ObservableQueue} from "./types/observablequeue.mjs"
export {UUID} from "./types/uuid.mjs"
export {Observer} from "./types/observer.mjs"
export {TokenList} from "./types/tokenlist.mjs"
export {Queue} from "./types/queue.mjs"
export {Stack} from "./types/stack.mjs"
export {toBinary, fromBinary} from "./types/binary.mjs"
export {BaseWithOptions} from "./types/basewithoptions.mjs"
export {escapeString} from "./types/regex.mjs"
export {ProxyObserver} from "./types/proxyobserver.mjs"
export {NodeList} from "./types/nodelist.mjs"
export {Version, getMonsterVersion} from "./types/version.mjs"
export {Node} from "./types/node.mjs"
export {NodeRecursiveIterator} from "./types/noderecursiveiterator.mjs"
export {getGlobal, getGlobalObject, getGlobalFunction} from "./types/global.mjs"
export {DataUrl, parseDataURL} from "./types/dataurl.mjs"
export {
    validateIterable,
    validatePrimitive,
    validateBoolean,
    validateString,
    validateObject,
    validateInstance,
    validateArray,
    validateSymbol,
    validateFunction,
    validateInteger
} from "./types/validate.mjs"
export {UniqueQueue} from "./types/uniquequeue.mjs"
export {Base} from "./types/base.mjs"
export {
    isIterable, isPrimitive, isSymbol, isBoolean, isString, isObject, isInstance, isArray, isFunction, isInteger
} from "./types/is.mjs"
export {ID} from "./types/id.mjs"
export {trimSpaces} from "./util/trimspaces.mjs"
export {DeadMansSwitch} from "./util/deadmansswitch.mjs"
export {deepFreeze} from "./util/freeze.mjs"
export {Comparator} from "./util/comparator.mjs"
export {clone} from "./util/clone.mjs"
export {Processing} from "./util/processing.mjs"
export {extend} from "./data/extend.mjs"
export {Pipe} from "./data/pipe.mjs"
export {buildMap, PARENT, assembleParts} from "./data/buildmap.mjs"
export {Datasource} from "./data/datasource.mjs"
export {buildTree} from "./data/buildtree.mjs"
export {Transformer} from "./data/transformer.mjs"
export {Pathfinder, DELIMITER, WILDCARD} from "./data/pathfinder.mjs"
export {diff} from "./data/diff.mjs"
export {Server} from "./data/datasource/server.mjs"
export {SessionStorage} from "./data/datasource/storage/sessionstorage.mjs"
export {LocalStorage} from "./data/datasource/storage/localstorage.mjs"
export {RestAPI} from "./data/datasource/server/restapi.mjs"
export {WebConnect} from "./data/datasource/server/webconnect.mjs"
export {WriteError} from "./data/datasource/server/restapi/writeerror.mjs"
export {Storage, storageObjectSymbol} from "./data/datasource/storage.mjs"
export {random} from "./math/random.mjs"


export {Monster}

/**
 * This class has no other purpose than to exist.
 *
 * @license AGPLv3
 * @since 2.0.0
 * @copyright schukai GmbH
 * @memberOf Monster
 */
class Monster {

}