import { default as React, ComponentPropsWithoutRef, ElementType, ReactNode, Ref } from 'react';
import { IconLibrary, IconType } from '../../utils/icon-utils';
interface CardPropsBase<T> {
    /**
     * @remarks Prefer using a string value for better compatibility with accessibility and semantic HTML.
     * ReactNode is supported for internal use only.
     */
    title?: ReactNode;
    icon?: ReactNode;
    img?: string;
    horizontal?: boolean;
    as?: T;
    href?: string;
    mRef?: Ref<T | undefined>;
    cta?: string;
    arrow?: boolean;
    disabled?: boolean;
}
type CardProps<T extends ElementType> = CardPropsBase<T> & Omit<ComponentPropsWithoutRef<T>, keyof CardPropsBase<T>>;
interface CardIconProps {
    iconType?: IconType;
    iconLibrary?: IconLibrary;
    color?: string;
}
type CardComponentProps = Pick<CardPropsBase<ElementType>, "title" | "horizontal" | "href" | "img" | "disabled" | "cta" | "arrow" | "as"> & CardIconProps & {
    icon?: ReactNode | string;
    children?: React.ReactNode;
    className?: string;
};
declare const Card: ({ title, icon, iconType, iconLibrary, color, horizontal, href, img, children, disabled, cta, arrow, as, className, }: CardComponentProps) => import("react/jsx-runtime").JSX.Element;
declare const GenericCard: <T extends ElementType = "div">({ title, icon, img, className, children, horizontal, arrow, as, mRef, cta, disabled, ...props }: CardProps<T>) => import("react/jsx-runtime").JSX.Element;
export { Card, GenericCard };
export type { CardProps, CardPropsBase, CardComponentProps, CardIconProps };
//# sourceMappingURL=card.d.ts.map