import React from "react"; import type { CardBodyProps, CardHeaderProps, CardProps } from "./types"; /** * Props for a card that acts as a link. * When url is provided, the card becomes clickable and navigates to the specified URL. */ type LinkCardProps = CardProps & { /** * URL that the card would navigate to once clicked. */ url: string; /** * Makes the URL open in new tab on click. */ external?: boolean; onClick?: never; }; /** * Props for a card that has a click handler. * When onClick is provided, the card becomes clickable and triggers the handler on click. */ type ClickableCardProps = CardProps & { /** * Event handler that gets called when the card is clicked. */ onClick(event: React.MouseEvent): void; url?: never; readonly external?: never; }; /** * Props for a regular card without any click behavior. */ type RegularCardProps = CardProps & { url?: never; onClick?: never; readonly external?: never; }; type CardPropOptions = LinkCardProps | ClickableCardProps | RegularCardProps; /** * Header component for the Card. * Used in the compound component pattern to provide a consistent header layout. * * @example * ```tsx * * * Header Content * * *

Card content

*
*
* ``` */ declare function CardHeaderCompoundComponent({ children }: CardHeaderProps): React.JSX.Element; /** * Body component for the Card. * Used in the compound component pattern to provide a consistent content layout. * * @example * ```tsx * * * Header Content * * *

Card content

*
*
* ``` */ declare function CardBodyCompoundComponent({ children }: CardBodyProps): React.JSX.Element; export declare function Card(props: CardPropOptions): React.JSX.Element; export declare namespace Card { var Header: typeof CardHeaderCompoundComponent; var Body: typeof CardBodyCompoundComponent; } export {};