import type { ComponentProps, ElementType, ReactNode } from "react"; import type { ELEVATION } from "../../../system/Elevation"; import { Box } from "../Box/Box"; import { type TitleProps } from "../Title/Title"; type TitleAndMaybeActions = { title: string; /** * Spaces and positions the action components correctly in relation to * the styling of the card. * * @usage * ```tsx * * * * * } * /> * ``` */ actions: ReactNode; } | { title: undefined; actions: undefined; } | { title?: string; /** * The `actions` prop can only be used in conjunction with the `title` prop. */ actions?: never; }; export type Props = ComponentProps> & { border?: boolean; children: ReactNode; /** * - Presents a bar at the leading edge of the card and applies a box-shadow which can be overridden using the `elevation` prop. * - The width of the bar is adjusted based on the `borderRadius` prop starting at `xxxxs` size capping out at `m` size. * * - Applies an `elevation` of `large` if no other elevation is provided. * * - Turns on the border * * @default false */ highlighted?: boolean; /** * Adds a box-shadow to the element based on the design system when hovering */ elevationOnHover?: keyof typeof ELEVATION; /** * Whether or not to add the default padding to the card. Set this * to `false` if you want to render something full width inside of the * card, like an image or a list. You have access to the `Card.Padding` * subcomponent to then add back the default padding wherever needed. * * @default true */ padding?: boolean; /** * Applies the selected-state treatment (a brand-primary ring) for * picker/selectable-card usage, e.g. a card the user can tap to pick. * * Styling only: the consumer stays responsible for the selection * semantics (e.g. `aria-pressed` on a button card, `aria-selected` in * a listbox). Independent of `border` and `highlighted`. * * @default false */ selected?: boolean; } & TitleAndMaybeActions; export declare function Card(props: Props): import("react").JSX.Element; export declare namespace Card { var Title: (props: TitleProps) => import("react").JSX.Element; var TopBar: import("react").FC, HTMLDivElement>, "ref"> & { children?: ReactNode; }> & { Actions: typeof import("./Actions").Actions; }; var Padding: import("react").FC, HTMLDivElement>, "ref"> & { children?: ReactNode; }>; var Section: import("react").FC, HTMLDivElement>, "ref"> & { children?: ReactNode; }>; var Actions: import("react").FC, HTMLDivElement>, "ref">>; } export {};