/**
 * imageProcess.ts
 *
 * Performance architecture:
 *
 *  1. LRU cache (hash + config key → processed Buffer)
 *     → cache hit = zero Sharp involvement, zero decode
 *
 *  2. Metadata fast path: read dimensions from a tiny
 *     `sharp(buf).metadata()` call only when pixel-budget
 *     resize is needed. For all other paths, metadata is skipped.
 *
 *  3. AVIF concurrency limiter (default: 2 parallel encodes)
 *     → prevents CPU saturation under burst traffic
 *
 *  4. AVIF effort = 2 (was implicit 4-5)
 *     → 2–4× faster AVIF encode, ~5% larger file — fair trade
 *
 *  5. mozjpeg disabled
 *     → standard libjpeg is 3–5× faster
 */
export interface ImageProcessConfig {
    returnBase64?: boolean;
    quality?: number;
    pixels?: number;
    blackAndWhite?: boolean;
    mirror?: boolean;
    upToDown?: boolean;
    invert?: boolean;
    brightness?: number;
    contrast?: number;
    maxWidth?: number | null;
    maxHeight?: number | null;
}
export default function processImage(imageBuffer: Buffer, fileExtension: string, config?: ImageProcessConfig): Promise<string | Buffer>;
/** Wipe the entire processed image cache */
export declare function clearImageCache(): void;
/** Current cache stats for monitoring */
export declare function imageCacheStats(): {
    entryCount: number;
    usedBytes: number;
    maxBytes: number;
    utilizationPct: number;
};
