import { HTMLAttributes, ReactNode, ForwardRefExoticComponent, RefAttributes } from "react";
export interface CardTheme {
    baseStyle: string;
    headerStyle: string;
    titleStyle: string;
    subtitleStyle: string;
    bodyStyle: string;
    footerStyle: string;
}
export interface CardThemeOverrides {
    baseStyle?: string;
    headerStyle?: string;
    titleStyle?: string;
    subtitleStyle?: string;
    bodyStyle?: string;
    footerStyle?: string;
}
export interface CardProps extends HTMLAttributes<HTMLDivElement> {
    /**
     * The content to be displayed inside the card
     */
    children?: ReactNode;
    /**
     * Custom class name for the card
     */
    className?: string;
    /**
     * Component-level theme overrides
     */
    theme?: CardThemeOverrides;
    /**
     * Force dark mode styling for the component. Use when placing the component
     * on a dark background while the page is in light mode. This applies the
     * 'dark' class to the container, making text, borders, and other elements
     * use light colors for visibility.
     * @default false
     */
    darkMode?: boolean;
}
export interface CardComponent extends ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>> {
    Header: ForwardRefExoticComponent<CardHeaderProps & RefAttributes<HTMLDivElement>>;
    Title: ForwardRefExoticComponent<CardTitleProps & RefAttributes<HTMLDivElement>>;
    Subtitle: ForwardRefExoticComponent<CardSubtitleProps & RefAttributes<HTMLDivElement>>;
    Body: ForwardRefExoticComponent<CardBodyProps & RefAttributes<HTMLDivElement>>;
    Footer: ForwardRefExoticComponent<CardFooterProps & RefAttributes<HTMLDivElement>>;
}
export interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {
    className?: string;
}
export interface CardBodyProps extends HTMLAttributes<HTMLDivElement> {
    className?: string;
}
export interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {
    className?: string;
}
export interface CardTitleProps extends HTMLAttributes<HTMLDivElement> {
    className?: string;
}
export interface CardSubtitleProps extends HTMLAttributes<HTMLDivElement> {
    className?: string;
}
