import { ContextValue, SlotProps } from 'react-aria-components/slots';
import { HTMLAttributeReferrerPolicy, ReactNode } from 'react';
import { ImageGroup } from './ImageCoordinator';
import { StyleString } from '../style/types';
import { UnsafeStyles } from './style-utils';
export interface ImageSource {
    /**
     * A comma-separated list of image URLs and descriptors.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).
     */
    srcSet?: string | undefined;
    /**
     * The color scheme for this image source. Unlike `media`, this respects the `Provider` color scheme setting.
     */
    colorScheme?: 'light' | 'dark';
    /**
     * A media query describing when the source should render.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).
     */
    media?: string | undefined;
    /**
     * A list of source sizes that describe the final rendered width of the image.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).
     */
    sizes?: string | undefined;
    /**
     * The mime type of the image.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).
     */
    type?: string | undefined;
    /**
     * The intrinsic width of the image.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).
     */
    width?: number;
    /**
     * The intrinsic height of the image.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).
     */
    height?: number;
}
export interface ImageProps extends UnsafeStyles, SlotProps {
    /** The URL of the image or a list of conditional sources. */
    src?: string | ImageSource[];
    /** Accessible alt text for the image. */
    alt?: string;
    /**
     * Indicates if the fetching of the image must be done using a CORS request.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).
     */
    crossOrigin?: 'anonymous' | 'use-credentials';
    /**
     * Whether the browser should decode images synchronously or asynchronously.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).
     */
    decoding?: 'async' | 'auto' | 'sync';
    /**
     * Provides a hint of the relative priority to use when fetching the image.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).
     */
    fetchPriority?: 'high' | 'low' | 'auto';
    /**
     * Whether the image should be loaded immediately or lazily when scrolled into view.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).
     */
    loading?: 'eager' | 'lazy';
    /**
     * A string indicating which referrer to use when fetching the resource.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).
     */
    referrerPolicy?: HTMLAttributeReferrerPolicy;
    /**
     * The intrinsic width of the image.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).
     */
    width?: number;
    /**
     * The intrinsic height of the image.
     * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).
     */
    height?: number;
    /** Spectrum-defined styles, returned by the `style()` macro. */
    styles?: StyleString;
    /** A function that is called to render a fallback when the image fails to load. */
    renderError?: () => ReactNode;
    /**
     * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>` component.
     * If not provided, the default image group is used.
     */
    group?: ImageGroup;
    /**
     * Associates the image with a microdata object.
     * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).
     */
    itemProp?: string;
}
interface ImageContextValue extends ImageProps {
    hidden?: boolean;
}
export declare const ImageContext: import("react").Context<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>;
/**
 * An image with support for skeleton loading and custom error states.
 */
export declare const Image: import("react").ForwardRefExoticComponent<ImageProps & import("react").RefAttributes<HTMLDivElement>>;
export {};
