import { type CSSProperties, type ImgHTMLAttributes, type VideoHTMLAttributes } from 'react';
import type { GradialAsset } from '../types/media.js';
export interface GradialMediaProps {
    /** The compiler-resolved asset to render. */
    asset: GradialAsset;
    /** CSS class applied to the rendered element. */
    className?: string;
    /** Inline styles applied to the rendered element. */
    style?: CSSProperties;
    /** Loading strategy for images. Defaults to 'lazy'. */
    loading?: 'eager' | 'lazy';
    /** Additional image attributes (only applied when asset is an image). */
    imgProps?: Omit<ImgHTMLAttributes<HTMLImageElement>, 'src' | 'alt'>;
    /** Additional video attributes (only applied when asset is a video). */
    videoProps?: Omit<VideoHTMLAttributes<HTMLVideoElement>, 'src' | 'poster' | 'width' | 'height'>;
}
/**
 * Polymorphic media component — renders a GradialAsset as the appropriate
 * HTML element based on $type.
 *
 * - gradial.image → <picture> or <img> via GradialPicture
 * - gradial.video → <video> via GradialVideoPlayer
 */
export declare function GradialMedia({ asset, className, style, loading, imgProps, videoProps, }: GradialMediaProps): import("react").FunctionComponentElement<import("./GradialPicture.js").GradialPictureProps> | import("react").FunctionComponentElement<import("./GradialVideoPlayer.js").GradialVideoPlayerProps> | null;
