import type * as React from "react"; export declare const DEFAULT_OPTIMIZED_IMAGE_FORMATS: readonly ["avif", "webp", "jpeg"]; /** Serialize a URL as a quoted CSS url() value without changing its identity. */ export declare function cssUrl(value: string): string; export declare function getOptimizedPath(src: string, format: string, size: number, _quality?: number): string; export declare function generateSrcSet(src: string, format: string, sizes: readonly number[], _quality: number): string; /** * Resolve build-emitted widths at the public React boundary. * Invalid runtime props use the original asset; the strict shared resolver * remains authoritative for build configuration and internal callers. */ export declare function getOptimizedImageVariantWidths(sourceWidth: number | undefined, targetWidths?: readonly number[], src?: string): readonly number[]; /** Return a valid numeric img dimension attribute, or omit invalid runtime values. */ export declare function getImageDimensionAttribute(value: number | undefined): number | undefined; /** Use the original asset unless a corresponding optimized variant is known. */ export declare function getOptimizedImageFallback(src: string, format: string, widths: readonly number[], quality: number, preferredWidth?: number): string; /** Use an optimized fallback only when `format` is in the caller-requested formats. */ export declare function getOptimizedImageFormatFallback(src: string, format: string, requestedFormats: readonly string[] | undefined, widths: readonly number[], quality: number): string; /** * Get image file extension, defaulting to "jpeg" if none found. * * "jpg" is normalized to "jpeg" because the build pipeline only emits * "jpeg" variants (see SUPPORTED_FORMATS in the image optimizer), so a * ".jpg" source would otherwise produce a fallback URL that never exists. */ export declare function getImageExtension(src: string): string; /** * Keyboard activation for a clickable image, matching how a native button and * `ui/list.tsx` behave: Enter fires on keydown, Space is deferred to keyup so * moving focus away cancels the pending activation. */ export declare function handleImageActivationKeyDown(event: React.KeyboardEvent): void; /** Companion to {@link handleImageActivationKeyDown}: fires the deferred Space. */ export declare function handleImageActivationKeyUp(event: React.KeyboardEvent): void; /** Companion to {@link handleImageActivationKeyDown}: drops a pending Space. */ export declare function handleImageActivationBlur(event: React.FocusEvent): void; //# sourceMappingURL=helpers.d.ts.map