import { type Dimensions } from '@augment-vir/common';
import { type Duration, type DurationUnit } from 'date-vir';
/**
* An `
` element wrapper that handles size constraints and includes slots for loading and error
* indicators.
*
* Use CSS properties to constrain the image. In particular, set `min-height` and `min-width` on
* this to control the size of the loader and error slots.
*
* @category Image
* @category Elements
* @see https://electrovir.github.io/vira/book/elements/vira-image
*/
export declare const ViraImage: import("element-vir").DeclarativeElementDefinition<"vira-image", {
/** The URL of the image to load. This is passed directly to the `
` element. */
imageUrl: string;
/**
* The dimension which should dominantly constrain the image size. Whichever dimension this is
* set to is the dimension that the image will grow to match. This is only relevant if you apply
* size constraints on ViraImage via CSS in its parent.
*
* @default 'width'
*/
dominantDimension?: keyof Dimensions | undefined;
/** For debugging only: artificially set a delay for the image loading so you can see the loader. */
_debugLoadDelay?: Duration | undefined;
}, {
/**
* To avoid race conditions between `
` element events and potential input changing,
* save the loaded state of an URL's image by the image's URL.
*/
loadedUrls: Readonly<{
[url: string]: true;
}>;
/**
* To avoid race conditions between `
` element events and potential input changing,
* save the errored state of an URL's image by the image's URL.
*/
erroredUrls: Readonly<{
[url: string]: true;
}>;
}, {
imageLoad: import("element-vir").DefineEvent;
imageError: import("element-vir").DefineEvent;
}, "vira-image-height-constrained", "vira-image-", readonly ["loading", "error"], readonly []>;