import sharp from 'sharp'; import type { AstcOptions, BasisOptions, BcOptions, EtcOptions } from 'gpu-tex-enc'; import type { AvifOptions, JpegOptions, PngOptions, WebpOptions } from 'sharp'; import type { AssetPipe, PluginOptions } from '../core/index.js'; type CompressJpgOptions = Omit; type CompressWebpOptions = Omit; type CompressAvifOptions = Omit; type CompressPngOptions = Omit; type CompressBc7Options = BcOptions; type CompressAstcOptions = AstcOptions; type CompressBasisOptions = BasisOptions; type CompressEtcOptions = EtcOptions; export interface CompressOptions extends PluginOptions { png?: CompressPngOptions | boolean | 'skip'; webp?: CompressWebpOptions | boolean; avif?: CompressAvifOptions | boolean; jpg?: CompressJpgOptions | boolean | 'skip'; bc7?: CompressBc7Options | boolean; astc?: CompressAstcOptions | boolean; basis?: CompressBasisOptions | boolean; etc?: CompressEtcOptions | boolean; } export interface CompressImageData { format: '.avif' | '.png' | '.webp' | '.jpg' | '.jpeg'; resolution: number; sharpImage: sharp.Sharp; } export interface CompressImageDataResult { format: CompressImageData['format'] | '.bc7.dds' | '.astc.ktx' | '.basis.ktx2' | '.etc.ktx'; resolution: number; buffer: Buffer; } export type CompressTags = 'nc'; export declare function compress(options?: CompressOptions): AssetPipe; export {};