import type { ImageConfig, ImageFormat, RemotePattern } from '../../types/image';
export declare const DEFAULT_DEVICE_SIZES: number[];
export declare const DEFAULT_IMAGE_SIZES: number[];
export declare const DEFAULT_QUALITY = 75;
export declare const OPTIMIZATION_ENDPOINT = "/_absolute/image";
export declare const buildOptimizedUrl: (src: string, width: number, quality: number, basePath?: string) => string;
export type CacheMeta = {
    contentType: string;
    etag: string;
    expireAt: number;
    upstreamEtag?: string;
};
export declare const formatToMime: (format: ImageFormat) => string;
export declare const generateBlurDataURL: (buffer: Buffer | ArrayBuffer) => Promise<string>;
export declare const generateBlurSvg: (base64Thumbnail: string) => string;
export declare const generateSrcSet: (src: string, width: number | undefined, sizes: string | undefined, config?: ImageConfig, loader?: (params: {
    quality: number;
    src: string;
    width: number;
}) => string) => string;
export declare const getAllSizes: (config?: ImageConfig) => number[];
export declare const getCacheDir: (buildDir: string) => string;
export declare const getCacheKey: (url: string, width: number, quality: number, format: string) => string;
export declare const isCacheStale: (meta: CacheMeta) => boolean;
export declare const matchRemotePattern: (urlString: string, patterns: RemotePattern[]) => boolean;
export declare const negotiateFormat: (acceptHeader: string, configuredFormats: ImageFormat[]) => ImageFormat;
export declare const optimizeImage: (buffer: Buffer | ArrayBuffer, width: number, quality: number, format: ImageFormat) => Promise<any>;
export declare const readFromCache: (cacheDir: string, cacheKey: string) => {
    buffer: NonSharedBuffer;
    meta: CacheMeta;
} | null;
export declare const tryLoadSharp: () => Promise<unknown>;
export declare const writeToCache: (cacheDir: string, cacheKey: string, buffer: Buffer, meta: CacheMeta) => void;
