/** * Cascade Blur Algorithm * * High-performance Gaussian blur for large radii using pyramid scaling. * * The key insight: to blur with large radius efficiently: * 1. Scale down the image by factor of 2 (with smooth kernel) * 2. Apply blur with smaller kernel on reduced image * 3. Scale back up (with smooth kernel) * * The shrink/expand kernels [1, 5, 10, 10, 5, 1]/32 provide sufficient * smoothness to maintain 8-bit precision through multiple cascade levels. * * Performance: O(n) per pixel regardless of blur radius * Traditional Gaussian: O(r) per pixel where r is radius */ import { type Bitmap } from "./types.ts"; /** * Cascade Gaussian blur with asymmetric X/Y radii * High-performance blur using pyramid scaling for large radii * @param bitmap Input bitmap to blur * @param radiusX Blur radius along X axis in pixels * @param radiusY Blur radius along Y axis in pixels (defaults to radiusX) * @returns New bitmap with blur applied (dimensions may change) */ export declare function cascadeBlur(bitmap: Bitmap, radiusX: number, radiusY?: number): Bitmap; /** * Fast Gaussian blur using cascade algorithm * This is the recommended blur function for large radii (> 3 pixels) * @param bitmap Input bitmap to blur * @param radius Blur radius in pixels * @returns New bitmap with blur applied (dimensions may change) */ export declare function fastGaussianBlur(bitmap: Bitmap, radius: number): Bitmap; /** * Adaptive blur that chooses the best algorithm based on radius * For small radii (≤ 3): uses simple separable Gaussian (more precise) * For large radii (> 3): uses cascade algorithm (faster) * @param bitmap Input bitmap to blur * @param radiusX Horizontal blur radius in pixels * @param radiusY Vertical blur radius in pixels (defaults to radiusX) * @returns Blurred bitmap using the optimal algorithm */ export declare function adaptiveBlur(bitmap: Bitmap, radiusX: number, radiusY?: number): Bitmap;