/** * Type Definitions for libnextimage * These types map to the C library interface (matching golang/webp.go) */ /** * Status codes returned by libnextimage functions */ export declare enum NextImageStatus { OK = 0, ERROR_INVALID_PARAM = -1, ERROR_ENCODE_FAILED = -2, ERROR_DECODE_FAILED = -3, ERROR_OUT_OF_MEMORY = -4, ERROR_UNSUPPORTED = -5, ERROR_BUFFER_TOO_SMALL = -6 } /** * Pixel format types supported by libnextimage */ export declare enum PixelFormat { RGBA = 0,// RGBA 8bit/channel RGB = 1,// RGB 8bit/channel BGRA = 2,// BGRA 8bit/channel YUV420 = 3,// YUV 4:2:0 planar YUV422 = 4,// YUV 4:2:2 planar YUV444 = 5 } /** * Convert PixelFormat string or number to number */ export declare function normalizePixelFormat(format: PixelFormat | string | number | undefined): number; /** * WebP Preset types */ export declare enum WebPPreset { DEFAULT = 0,// default preset PICTURE = 1,// digital picture, like portrait PHOTO = 2,// outdoor photograph DRAWING = 3,// hand or line drawing ICON = 4,// small-sized colorful images TEXT = 5 } /** * WebP image hint types */ export declare enum WebPImageHint { DEFAULT = 0,// default hint PICTURE = 1,// digital picture, like portrait PHOTO = 2,// outdoor photograph GRAPH = 3 } /** * WebP encoding options (matching Golang implementation) * Simplified version with commonly used options */ export interface WebPEncodeOptions { quality?: number; lossless?: boolean; method?: number; preset?: WebPPreset; imageHint?: WebPImageHint; exact?: boolean; } /** * WebP decoding options (simplified) */ export interface WebPDecodeOptions { useThreads?: boolean; format?: PixelFormat; } /** * AVIF YUV format types */ export declare enum AVIFYUVFormat { YUV444 = 0,// 4:4:4 (no chroma subsampling) YUV422 = 1,// 4:2:2 (horizontal subsampling) YUV420 = 2,// 4:2:0 (both horizontal and vertical subsampling) YUV400 = 3 } /** * AVIF YUV range types */ export declare enum AVIFYUVRange { LIMITED = 0,// Limited range (16-235 for 8-bit) FULL = 1 } /** * AVIF encoding options (matching Golang implementation) */ export interface AVIFEncodeOptions { quality?: number; qualityAlpha?: number; speed?: number; bitDepth?: number; yuvFormat?: AVIFYUVFormat; yuvRange?: AVIFYUVRange; enableAlpha?: boolean; premultiplyAlpha?: boolean; tileRowsLog2?: number; tileColsLog2?: number; colorPrimaries?: number; transferCharacteristics?: number; matrixCoefficients?: number; sharpYUV?: boolean; targetSize?: number; exifData?: Buffer; xmpData?: Buffer; iccData?: Buffer; irotAngle?: number; imirAxis?: number; } /** * AVIF decoding options */ export interface AVIFDecodeOptions { useThreads?: boolean; format?: PixelFormat; ignoreExif?: boolean; ignoreXMP?: boolean; ignoreICC?: boolean; imageSizeLimit?: number; imageDimensionLimit?: number; strictFlags?: number; chromaUpsampling?: number; } /** * Decoded image data */ export interface DecodedImage { data: Buffer; width: number; height: number; stride: number; format: PixelFormat; bitDepth: number; uPlane?: Buffer; vPlane?: Buffer; uStride?: number; vStride?: number; } /** * Helper: Check if status indicates success */ export declare function isSuccess(status: NextImageStatus): boolean; /** * Helper: Convert C integer boolean to TypeScript boolean * In C, 0 is false and non-zero is true */ export declare function cBoolToBoolean(value: number): boolean; /** * Helper: Convert TypeScript boolean to C integer boolean */ export declare function booleanToCBool(value: boolean): number; /** * Helper: Get error message for status code */ export declare function getStatusMessage(status: NextImageStatus): string; /** * Custom error class for libnextimage operations */ export declare class NextImageError extends Error { status: NextImageStatus; constructor(status: NextImageStatus, message?: string); } //# sourceMappingURL=types.d.ts.map