import React$1, { ReactNode, ReactElement, MouseEventHandler } from 'react'; import { AssetStatus, AssetType } from '@contentful/f36-asset'; import { ButtonProps } from '@contentful/f36-button'; import { CommonProps, MarginProps, PolymorphicComponent, ExpandProps, PolymorphicProps, EntityStatus } from '@contentful/f36-core'; import { HeadingElement } from '@contentful/f36-typography'; type CardElement = 'a' | 'article' | 'button' | 'div' | 'fieldset'; type BaseCardDragHandleProps = { /** * Render the component with a drag handle */ withDragHandle?: boolean; /** * Applies dragging styles to the card and drag handle */ isDragging?: boolean; /** * Custom drag handle renderer. Useful, when integrating cards with drag-n-drop libraries */ dragHandleRender?: (props: { isDragging?: boolean; drag: React.ReactElement; }) => React.ReactElement; }; type BaseCardInternalProps = CommonProps & MarginProps & BaseCardDragHandleProps & { /** * An array of Menu elements used to render an actions menu */ actions?: ReactNode[]; /** * Handle tag for Card component */ as?: CardElement; /** * If the card is selectable and has no title, it will need a aria-label to help screen readers identify it */ ariaLabel?: string; /** * Badge component to show in Card header */ badge?: ReactNode; /** * An element to render as the action button */ customActionButton?: ReactNode; /** * Passing href into the Card. You need to also add property as="a" to make it rendered as */ href?: string; /** * Child nodes to be rendered in the component */ children?: ReactNode; /** * Custom header element to render */ header?: ReactElement; /** * Icon to show in the Card header */ icon?: React.ReactElement | null; /** * Props to pass to the action menu button */ actionsButtonProps?: Partial>; /** * Click event handler */ onClick?: MouseEventHandler; /** * Applies hover styles to the card */ isHovered?: boolean; /** * Applies selected styles to the element */ isSelected?: boolean; /** * The title of the entry. It will also be used as aria-label */ title?: string; /** * Type of the entity represented by the card. Shown in the header of the card */ type?: string; /** * Loading state for the component - when true will display loading feedback to the user */ isLoading?: boolean; }; interface AssetCardInternalProps extends Omit { size?: 'small' | 'default'; src?: string; status?: AssetStatus; /** * Type of the entity represented by the card. Shown in the header of the card */ type?: AssetType; } type AssetCardProps = AssetCardInternalProps; declare const AssetCard: ({ actions, className, icon, isSelected, size, src, status, title, type, withDragHandle, isLoading, testId, badge: customBadge, ...otherProps }: AssetCardInternalProps) => React$1.JSX.Element; declare const BASE_CARD_DEFAULT_TAG = "article"; type BaseProps = Omit & { /** * Padding size to apply to the component * * @default default */ padding?: 'default' | 'large' | 'none'; }; type BasePropsWithDragHandle = Omit & Pick & { padding: 'none'; }; type CardInternalProps = BaseProps | BasePropsWithDragHandle; type CardProps = PolymorphicProps; declare const Card: PolymorphicComponent, typeof BASE_CARD_DEFAULT_TAG>; type EntryCardSize = 'default' | 'small' | 'auto'; type EntryCardInternalProps = Omit & { /** * The title of the entry, it will be used as the value for the tooltip */ title?: string; /** * The tag for the title of the entry. */ titleTag?: HeadingElement; /** * The description of the entry */ description?: string; /** * The content type of the entry */ contentType?: string; /** * The publishing status of the entry */ status?: EntityStatus; /** * The thumbnail of the entry */ thumbnailElement?: ReactElement; /** * Changes the height of the component. When small will also ensure thumbnail and description aren't rendered */ size?: EntryCardSize; }; declare const ENTRY_CARD_DEFAULT_TAG = "article"; type EntryCardProps = PolymorphicProps; declare const EntryCard: PolymorphicComponent, typeof ENTRY_CARD_DEFAULT_TAG>; type InlineEntryCardInternalProps = Omit; type InlineEntryCardProps = InlineEntryCardInternalProps; declare const InlineEntryCard: ({ actions, className, children, status, title, isLoading, testId, ...otherProps }: InlineEntryCardInternalProps) => React$1.JSX.Element; export { AssetCard, type AssetCardProps, Card, type CardProps, EntryCard, type EntryCardProps, InlineEntryCard, type InlineEntryCardProps };