import { type ImgHTMLAttributes, type ReactNode } from "react";
export type ImageFormat = "avif" | "webp" | "jpeg" | "jpg" | "png";
export type StoredImageData = {
    filename: string;
    path: string;
    width?: number;
    height?: number;
    alt?: string;
    hasSet?: boolean;
};
interface ImageViewProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, "src" | "alt"> {
    /** Запись из таблицы Image. Предпочтительный способ передать изображение из БД. */
    image?: StoredImageData;
    /** Базовое имя файла из БД. Для новых изображений это md5 без расширения. */
    src?: string;
    /** Путь из БД относительно публичного корня, например `images/articles`. */
    path?: string;
    alt?: string;
    role?: string;
    ariaLabel?: string;
    caption?: string;
    fallback?: ReactNode;
    useFigure?: boolean;
    aspectRatio?: string | "unset";
    /** Форматы, которые реально лежат в хранилище для текущего изображения. */
    formats?: readonly ImageFormat[];
    /** Формат для img.src. Должен существовать в хранилище. */
    fallbackFormat?: ImageFormat;
    /** Набор размеров для файлов вида base@width.format. */
    variantWidths?: readonly number[];
    /** Признак наличия responsive-набора. Если false, @size srcSet не строится. */
    hasSet?: boolean;
}
/**
 * Адаптер для изображений из таблицы Image.
 * Компонент строит пути только из данных БД: path + filename + формат/размер.
 */
export declare function ImageView({ image, src, path, alt, formats, fallbackFormat, variantWidths, hasSet, aspectRatio, ...props }: ImageViewProps): import("react").JSX.Element;
export {};
//# sourceMappingURL=ImageView.d.ts.map