Source: index.js

// ==============================
// Central Export
// ==============================

// Core abstract interfaces
import { Collection } from "./core/Collection.js"; 
import { AsyncCollection } from "./core/AsyncCollection.js"; 
import { Queue } from "./core/Queue.js";

// Queue implementations
import { ArrayQueue } from "./queue/ArrayQueue.js";
import { SortedArray } from "./queue/SortedArray.js";
import { Classifier } from "./queue/Classifier.js";
import { TrueSet } from "./queue/TrueSet.js";

// Global constants
import { ORDER, SORTER } from "./global.js";

// Re-exports
export {
  Collection,
  AsyncCollection,
  Queue,
  ArrayQueue,
  SortedArray,
  Classifier,
  TrueSet,
  ORDER,
  SORTER
};

/**
 *
 * Core abstract interfaces for collections and queues:
 *
 * - {@link Collection} — base class for synchronous iterable collections with CRUD support.
 * - {@link AsyncCollection} — async variant of Collection, using async iteration and promises.
 * - {@link Queue} — abstract interface for ordered Collections.
 * 
 * @module core
 */

/**
 *
 * Concrete implementations of {@link Queue}:
 *
 * - {@link ArrayQueue} — array-backed queue, ordered by insertion (FIFO/LIFO).
 * - {@link SortedArray} — queue/collection backed by a sorted array, ordered by a comparator.
 * - {@link Classifier} — queue/collection of objects aggregated by some representation function.
 * - {@link TrueSet} — queue/collection of objects aggregated by some representation function.
 * 
 * @module queue
 */

/**
 * Global constants and shared utilities.
 * 
 * This module exports two primary namespaces:
 * 
 * - {@link ORDER} — A collection of standard comparison utilities
 *   (e.g., ASCENDING, DESCENDING, SINGULAR, BY_PROPERTY, etc.)
 *   intended for configuring sorted containers such as Queue or SortedArray.
 *
 * - {@link SORTER} — Factory functions (e.g., BY_DEPTH, UNIFORM)
 *   that produce sorter(node) functions used when constructing a Classifier.
 *   Sorters determine how child keys and stored values are ordered at every node.
 *
 * These utilities form the common configuration layer shared across all
 * higher-level data structures in the library.
 * 
 * @module global
 */