import React from 'react';
import { HTMLMotionProps } from 'framer-motion';
import { DragStartValidator, DragEndValidator } from '@/lib/validation';
import { Counter } from '@/lib/CardCounter';
export type CardShadow = "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "soft" | string;
export type FlipDirection = "horizontal" | "vertical";
export interface CardRef {
flipTo: (faceUp: boolean) => void;
}
interface CardProps extends Omit, "children" | "onClick" | "onSelect"> {
children?: React.ReactNode;
className?: string;
containerClassName?: string;
width?: number | string;
height?: number | string;
imageUrl?: string;
faceUp?: boolean;
onClick?: () => void;
onContextMenu?: (e: React.MouseEvent) => void;
selected?: boolean;
disabled?: boolean;
shadow?: CardShadow;
maxTilt?: number;
showGlare?: boolean;
glareOpacity?: number;
glareSize?: number;
scaleOnHover?: number;
rotation?: number;
badges?: React.ReactNode[];
backContent?: React.ReactNode;
zIndex?: number;
onValidateDragStart?: DragStartValidator;
onValidateDragEnd?: DragEndValidator;
onValidationError?: (error: string) => void;
cardId?: string;
cardData?: unknown;
onFlip?: (newFaceUp: boolean) => void;
onFlipComplete?: (faceUp: boolean) => void;
flipDuration?: number;
flipDirection?: FlipDirection;
selectable?: boolean;
onSelect?: (cardId: string, event?: React.MouseEvent) => void;
counters?: Counter[];
renderCounter?: (counter: Counter) => React.ReactNode;
stackId?: string;
stackOrder?: number;
isStackTop?: boolean;
}
export declare const Card: React.ForwardRefExoticComponent & React.RefAttributes>;
export {};