import { AccessibilityProps, TokenContract } from '../shared/index.js';

interface CardProps {
    /** Optional accessible role override */
    role?: string;
}
interface CardAPI {
    /** ARIA attributes to spread on the element */
    ariaProps: Partial<AccessibilityProps>;
    /** Data attributes for CSS styling hooks */
    dataAttributes: Record<string, string>;
}
declare function createCard(props?: CardProps): CardAPI;
declare function createCardHeader(): {
    dataAttributes: Record<string, string>;
};
declare function createCardTitle(): {
    dataAttributes: Record<string, string>;
};
declare function createCardDescription(): {
    dataAttributes: Record<string, string>;
};
declare function createCardContent(): {
    dataAttributes: Record<string, string>;
};
declare function createCardFooter(): {
    dataAttributes: Record<string, string>;
};

declare const cardTokens: TokenContract;
declare const cardVariants: (props?: ({
    padding?: "none" | "default" | "compact" | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const cardHeaderVariants: (props?: ({
    [x: string]: string | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const cardTitleVariants: (props?: ({
    size?: "default" | "sm" | "lg" | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const cardDescriptionVariants: (props?: ({
    [x: string]: string | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const cardContentVariants: (props?: ({
    [x: string]: string | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const cardFooterVariants: (props?: ({
    [x: string]: string | undefined;
} & {
    className?: string;
}) | undefined) => string;

export { type CardAPI, type CardProps, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, createCard, createCardContent, createCardDescription, createCardFooter, createCardHeader, createCardTitle };
