@stacksjs/stx
Version:
A performant UI Framework. Powered by Bun.
53 lines • 1.74 kB
TypeScript
import { type ImageOptions, } from './processor';
import type { BuildPlugin } from '../production-build';
/**
* Create the image optimization build plugin
*/
export declare function createImagePlugin(options?: ImageBuildOptions): BuildPlugin;
/**
* Optimize a single image
*/
export declare function optimizeImage(inputPath: string, outputDir: string, options?: ImageOptions): Promise<ProcessedImage>;
/**
* Optimize all images in a directory
*/
export declare function optimizeDirectory(inputDir: string, outputDir: string, options?: ImageBuildOptions): Promise<{
processed: ProcessedImage[]
stats: ImageBuildContext['stats']
}>;
/**
* Generate image manifest for build
*/
export declare function generateImageManifest(images: ProcessedImage[]): Record<string, { variants: ImageVariant[]; placeholder?: string }>;
/**
* Write image manifest to file
*/
export declare function writeImageManifest(images: ProcessedImage[], outputPath: string): Promise<void>;
// ============================================================================
// Types
// ============================================================================
export declare interface ImageBuildOptions {
inputDirs?: string[]
outputDir?: string
baseUrl?: string
defaults?: ImageOptions
cache?: boolean
cacheDir?: string
concurrency?: number
referencedOnly?: boolean
formats?: ImageFormat[]
widths?: number[]
quality?: number
placeholder?: 'blur' | 'dominant-color' | 'none'
verbose?: boolean
}
export declare interface ImageBuildContext {
imageReferences: Set<string>
processedImages: Map<string, ProcessedImage>
stats: {
totalImages: number
optimizedImages: number
savedBytes: number
variants: number
}
}