import type { AriaAttributes } from 'react'; import React from 'react'; import type { AvatarProps } from '~/components/Avatar/types'; import type { IconProps } from '~/components/Icon/types'; import type { ImageProps } from '~/components/Image/types'; import type { LoadingSpinnerProps } from '~/components/LoadingSpinner/types'; import type { BaseProps, ChildrenProps, StylableProps } from '~/types/component'; type Variant = 'body' | 'heading' | 'custom'; type Size = 'xs' | 'sm' | 'md' | 'lg'; type MediaComponent = { type: 'icon'; component: React.FC; props?: IconProps; } | { type: 'avatar'; component: React.FC; props?: AvatarProps; } | { type: 'image'; component: React.FC; props: ImageProps; } | { type: 'loading'; component: React.FC; props?: LoadingSpinnerProps; }; export interface MediaLockupProps extends BaseProps, ChildrenProps, StylableProps, AriaAttributes { /** The variant of the media lockup. */ variant: Variant; /** The size of the media lockup. */ size: Size; /** The media to display before the children. */ leadingMedia?: MediaComponent; /** The media to display after the children. */ trailingMedia?: MediaComponent; } export declare function MediaLockup({ children, 'data-tag': dataTag, id, size, variant, leadingMedia, trailingMedia, className, style, ...props }: MediaLockupProps): React.JSX.Element; declare function MediaComponent({ variant, size, media }: { variant: Variant; size: Size; media: MediaComponent; }): React.JSX.Element | null; export {};