index.js

/**
 * @fileoverview LuminaJS Main Entry Point
 * Exports all modular components for the LuminaJS image processing library.
 */

// Core Modules
export { loadImage } from './core/loader.js';
export {
  getPixelData,
  putPixelData,
  canvasToBlob,
  getResizedImageData,
  resize,
  crop,
} from './core/canvas.js';

// Filters
export { grayscale } from './filters/grayscale.js';
export { brightness } from './filters/brightness.js';
export { contrast } from './filters/contrast.js';
export { sepia } from './filters/sepia.js';
export { ascii } from './filters/ascii.js';
export { blur } from './filters/blur.js';
export { gaussianBlur } from './filters/gaussianBlur.js';
export { watermark } from './filters/watermark.js';
export { backgroundBlur } from './filters/backgroundBlur.js';
export { applyConvolution } from './filters/convolution.js';
export { sharpen } from './filters/sharpen.js';
export { emboss } from './filters/emboss.js';
export { edgeDetection } from './filters/edgeDetection.js';

// Chainable API
import { Lumina } from './core/chain.js';
export { Lumina };

/**
 * Initiates a chainable processing sequence.
 * @param {string|File|HTMLImageElement|HTMLCanvasElement|ImageData} source - The image source.
 * @returns {Lumina} A new Lumina chain instance.
 */
export function lumina(source) {
  return new Lumina(source);
}

// Utilities
export { clamp, isImageFile } from './utils/helpers.js';