import { IEventDetail, IEventEmitter } from '@breadstone/mosaik-elements'; import { CssAspectRatio, CssLength } from '@breadstone/mosaik-themes'; import { ImageFit } from '../../../Types/ImageFit'; import { ImageLegendPosition } from '../../../Types/ImageLegendPosition'; import type { ImageState } from '../../../Types/ImageState'; import { CustomElement } from '../../Abstracts/CustomElement'; import type { IImageElementProps } from './IImageElementProps'; declare const ImageElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Dimensionable").IDimensionableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * Image - A responsive image container with advanced loading states and layout control. * * Provides comprehensive image handling with loading indicators, error states, aspect ratio control, * and flexible content placement. Supports various fit modes, lazy loading, and accessibility features. * Includes built-in placeholder states and legend positioning for rich media presentation. * * @name ImageElement * @element mosaik-image * @category Media * * @slot - Default content overlaid on the image * @slot empty - Content shown when no image source is provided * @slot failed - Content displayed when image loading fails * @slot pending - Content shown while image is loading * @slot legend - Caption or description content positioned around the image * * @csspart image - The main image element container * @csspart thumbnail - Blurred low-resolution placeholder image displayed during loading * @csspart placeholder - Container for loading, error, and empty states * @csspart legend - Caption or description container * @csspart content - Overlay content container * * @cssprop {String} --image-aspect-ratio - Aspect ratio constraint for the image container * @cssprop {String} --image-object-fit - How the image fits within its container (cover, contain, fill, etc.) * @cssprop {String} --image-border-radius - Border radius applied to the image * @cssprop {Color} --image-placeholder-color - Background color for placeholder states * @cssprop {String} --image-legend-position - Position of the legend relative to image * @cssprop {String} --image-thumbnail-blur - Blur radius applied to the thumbnail placeholder * * @dependency TextElement - For legend text rendering * @dependency ProgressRingElement - For loading state indicator * @dependency IconElement - For error and empty state icons * * @example * ```html * * * * * * * * * * Photo caption * * ``` * * @fires imageLoaded {ImageLoadedEvent} - Emitted when image successfully loads * @fires imageFailed {ImageFailedEvent} - Emitted when image loading fails * * @public */ export declare class ImageElement extends ImageElement_base implements IImageElementProps { private readonly _imageLoaded; private readonly _imageFailed; private _alt; private _src; private _srcset; private _state; private _fit; private _thumbnailSrc; private _showFailed; private _showEmpty; private _showPending; private _legend; private _legendPosition; private _ratio; /** * @public */ constructor(); /** * Returns the `is` property. * The `is` property represents natural name of this element. * * @public * @static * @readonly */ static get is(): string; /** * Gets or sets the `alt` property. * * @public * @attr */ get alt(): string; set alt(value: string); /** * Gets or sets the `src` property. * * @public * @attr */ get src(): string; set src(value: string); /** * Gets or sets the `srcset` property. * * @public * @attr */ get srcset(): string; set srcset(value: string); /** * Gets or sets the `showFailed` property. * * @public */ get showFailed(): boolean; set showFailed(value: boolean); /** * Gets or sets the `showEmpty` property. * * @public */ get showEmpty(): boolean; set showEmpty(value: boolean); /** * Gets or sets the `showEmpty` property. * * @public */ get showPending(): boolean; set showPending(value: boolean); /** * Gets or sets the `fit` property. * * @public * @attr */ get fit(): ImageFit; set fit(value: ImageFit); /** * Gets or sets the `thumbnailSrc` property. * When set, a low-resolution blurred version of the image is displayed as a placeholder * while the full image loads. The thumbnail fades out once the main image is ready. * The default value is an empty string, which means no thumbnail is displayed. * * @public * @attr */ get thumbnailSrc(): string; set thumbnailSrc(value: string); /** * Gets or sets the `legend` property. * * @public * @attr */ get legend(): string; set legend(value: string); /** * Gets or sets the `legendPosition` property. * * @public * @attr */ get legendPosition(): ImageLegendPosition; set legendPosition(value: ImageLegendPosition); /** * Returns the `state` property. * * @public * @readonly */ get state(): ImageState; private set state(value); /** * Gets or sets the `ratio` property. * * @public * @attr */ get ratio(): CssAspectRatio; set ratio(value: CssAspectRatio); /** * Called when the image is loaded. * Provides reference to `IEventDetail` as event detail. * * @public * @readonly * @eventProperty */ get imageLoaded(): IEventEmitter; /** * Called when the image load is failed. * Provides reference to `IEventDetail` as event detail. * * @public * @readonly * @eventProperty */ get imageFailed(): IEventEmitter; /** * @protected */ protected onWidthPropertyChanged(_prev?: CssLength, next?: CssLength): void; /** * @protected */ protected onHeightPropertyChanged(_prev?: CssLength, next?: CssLength): void; /** * @protected */ protected onSrcPropertyChanged(_prev?: string, next?: string): void; /** * @protected */ protected onRatioPropertyChanged(_prev?: CssAspectRatio, next?: CssAspectRatio): void; /** * @template * @protected */ onImageError(): void; /** * @template * @protected */ onImageLoad(): void; } /** * @public */ export declare namespace ImageElement { type Props = IImageElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-image': ImageElement; } } export {}; //# sourceMappingURL=ImageElement.d.ts.map