/**
 * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */
/**
 * @module utils
 */
export { default as env } from '@ckeditor/ckeditor5-utils/src/env.js';
export { default as diff, type DiffResult } from '@ckeditor/ckeditor5-utils/src/diff.js';
export { default as fastDiff } from '@ckeditor/ckeditor5-utils/src/fastdiff.js';
export { default as diffToChanges } from '@ckeditor/ckeditor5-utils/src/difftochanges.js';
export { default as mix } from '@ckeditor/ckeditor5-utils/src/mix.js';
export type { Constructor, Mixed } from '@ckeditor/ckeditor5-utils/src/mix.js';
export { default as EmitterMixin, type Emitter, type BaseEvent, type CallbackOptions, type EmitterMixinDelegateChain, type GetCallback, type GetCallbackOptions, type GetEventInfo, type GetNameOrEventInfo } from '@ckeditor/ckeditor5-utils/src/emittermixin.js';
export { default as EventInfo } from '@ckeditor/ckeditor5-utils/src/eventinfo.js';
export { default as ObservableMixin, type Observable, type DecoratedMethodEvent, type ObservableChangeEvent, type ObservableSetEvent } from '@ckeditor/ckeditor5-utils/src/observablemixin.js';
export { default as CKEditorError, logError, logWarning } from '@ckeditor/ckeditor5-utils/src/ckeditorerror.js';
export { default as ElementReplacer } from '@ckeditor/ckeditor5-utils/src/elementreplacer.js';
export { default as abortableDebounce, type AbortableFunc } from '@ckeditor/ckeditor5-utils/src/abortabledebounce.js';
export { default as count } from '@ckeditor/ckeditor5-utils/src/count.js';
export { default as compareArrays } from '@ckeditor/ckeditor5-utils/src/comparearrays.js';
export { default as createElement } from '@ckeditor/ckeditor5-utils/src/dom/createelement.js';
export { default as Config } from '@ckeditor/ckeditor5-utils/src/config.js';
export { default as isIterable } from '@ckeditor/ckeditor5-utils/src/isiterable.js';
export { default as DomEmitterMixin, type DomEmitter } from '@ckeditor/ckeditor5-utils/src/dom/emittermixin.js';
export { default as findClosestScrollableAncestor } from '@ckeditor/ckeditor5-utils/src/dom/findclosestscrollableancestor.js';
export { default as global } from '@ckeditor/ckeditor5-utils/src/dom/global.js';
export { default as getAncestors } from '@ckeditor/ckeditor5-utils/src/dom/getancestors.js';
export { default as getDataFromElement } from '@ckeditor/ckeditor5-utils/src/dom/getdatafromelement.js';
export { default as getBorderWidths } from '@ckeditor/ckeditor5-utils/src/dom/getborderwidths.js';
export { default as isText } from '@ckeditor/ckeditor5-utils/src/dom/istext.js';
export { default as Rect, type RectSource } from '@ckeditor/ckeditor5-utils/src/dom/rect.js';
export { default as ResizeObserver } from '@ckeditor/ckeditor5-utils/src/dom/resizeobserver.js';
export { default as setDataInElement } from '@ckeditor/ckeditor5-utils/src/dom/setdatainelement.js';
export { default as toUnit } from '@ckeditor/ckeditor5-utils/src/dom/tounit.js';
export { default as indexOf } from '@ckeditor/ckeditor5-utils/src/dom/indexof.js';
export { default as insertAt } from '@ckeditor/ckeditor5-utils/src/dom/insertat.js';
export { default as isComment } from '@ckeditor/ckeditor5-utils/src/dom/iscomment.js';
export { default as isNode } from '@ckeditor/ckeditor5-utils/src/dom/isnode.js';
export { default as isRange } from '@ckeditor/ckeditor5-utils/src/dom/isrange.js';
export { default as isValidAttributeName } from '@ckeditor/ckeditor5-utils/src/dom/isvalidattributename.js';
export { default as isVisible } from '@ckeditor/ckeditor5-utils/src/dom/isvisible.js';
export { getOptimalPosition, type Options as PositionOptions, type PositioningFunction, type DomPoint } from '@ckeditor/ckeditor5-utils/src/dom/position.js';
export { default as remove } from '@ckeditor/ckeditor5-utils/src/dom/remove.js';
export * from '@ckeditor/ckeditor5-utils/src/dom/scroll.js';
export * from '@ckeditor/ckeditor5-utils/src/keyboard.js';
export * from '@ckeditor/ckeditor5-utils/src/language.js';
export { default as Locale, type LocaleTranslate, type Translations } from '@ckeditor/ckeditor5-utils/src/locale.js';
export { default as Collection, type CollectionAddEvent, type CollectionChangeEvent, type CollectionRemoveEvent } from '@ckeditor/ckeditor5-utils/src/collection.js';
export { default as first } from '@ckeditor/ckeditor5-utils/src/first.js';
export { default as FocusTracker } from '@ckeditor/ckeditor5-utils/src/focustracker.js';
export { default as KeystrokeHandler } from '@ckeditor/ckeditor5-utils/src/keystrokehandler.js';
export { default as toArray, type ArrayOrItem, type ReadonlyArrayOrItem } from '@ckeditor/ckeditor5-utils/src/toarray.js';
export { default as toMap } from '@ckeditor/ckeditor5-utils/src/tomap.js';
export { default as priorities, type PriorityString } from '@ckeditor/ckeditor5-utils/src/priorities.js';
export { default as retry, exponentialDelay } from '@ckeditor/ckeditor5-utils/src/retry.js';
export { default as insertToPriorityArray } from '@ckeditor/ckeditor5-utils/src/inserttopriorityarray.js';
export { default as spliceArray } from '@ckeditor/ckeditor5-utils/src/splicearray.js';
export { default as uid } from '@ckeditor/ckeditor5-utils/src/uid.js';
export { default as delay, type DelayedFunc } from '@ckeditor/ckeditor5-utils/src/delay.js';
export { default as verifyLicense } from '@ckeditor/ckeditor5-utils/src/verifylicense.js';
export { default as wait } from '@ckeditor/ckeditor5-utils/src/wait.js';
export * from '@ckeditor/ckeditor5-utils/src/unicode.js';
export { default as version, releaseDate } from '@ckeditor/ckeditor5-utils/src/version.js';
