/** * Construct a resized image URL that routes through the Studio CDN resizer. * * In production, images at /_img/{path}?w=400&q=80 are served by a Lambda * that fetches the original, resizes with sharp, and caches the result. * * For media.eliseai.com URLs, rewrites to /_img/media/{id}.{ext}?w=... * For /assets/ URLs, rewrites to /_img/assets/...?w=... * For other URLs (external, data:, etc.), returns as-is. * * When no resize options are provided, returns the original URL unchanged. */ export declare const RESIZE_WIDTHS: readonly [100, 200, 400, 600, 800, 1200, 1600, 1920]; export interface ImageResizeOptions { /** Target width in pixels. Snapped to nearest allowed width in RESIZE_WIDTHS. */ w?: number; /** JPEG/WebP quality 1-100 (default: 80) */ q?: number; /** Focal point, normalized 0..1 and snapped to two decimals in the URL. */ fp?: { x: number; y: number; } | null; /** Aspect-only crop contract. */ crop?: { aspect: number; } | null; } export declare function canResizeImageUrl(url: string | null | undefined): boolean; export declare function imageUrl(url: string | null | undefined, opts?: ImageResizeOptions): string; //# sourceMappingURL=imageUrl.d.ts.map