import type { ProviderName } from "../types/providers.js";
declare const SUPPORTED_FORMATS: readonly ["jpeg", "png", "webp"];
type SupportedFormat = (typeof SUPPORTED_FORMATS)[number];
/**
 * Provider-specific image size limits in bytes
 */
export declare const PROVIDER_IMAGE_LIMITS: Record<ProviderName, number>;
export interface CompressionOptions {
    provider: ProviderName;
    quality?: number;
    maxDimension?: number;
    format?: SupportedFormat;
}
export interface CompressionResult {
    buffer: Buffer;
    originalSize: number;
    compressedSize: number;
    compressionRatio: number;
    metadata: {
        width: number;
        height: number;
        format: string;
    };
}
/**
 * Compress an image to meet provider-specific size limits
 * @param imageBuffer - Input image buffer
 * @param options - Compression options including provider name
 * @returns Compressed image buffer with metadata
 */
export declare function compressImage(imageBuffer: Buffer, options: CompressionOptions): Promise<CompressionResult>;
/**
 * Check if an image needs compression for a specific provider
 * @param imageBuffer - Input image buffer
 * @param provider - AI provider name
 * @returns True if compression is needed
 */
export declare function needsCompression(imageBuffer: Buffer, provider: ProviderName): boolean;
/**
 * Get the size limit for a specific provider
 * @param provider - AI provider name
 * @returns Size limit in bytes
 */
export declare function getProviderSizeLimit(provider: ProviderName): number;
export {};
