import { type ReactNode } from 'react';
export type ViewMode = 'table' | 'cards' | 'kanban';
interface DataViewProps<T> {
    data: T[];
    viewMode?: ViewMode;
    onViewModeChange?: (mode: ViewMode) => void;
    renderTable?: (data: T[]) => ReactNode;
    renderCards?: (data: T[]) => ReactNode;
    renderKanban?: (data: T[]) => ReactNode;
    showTableView?: boolean;
    showCardsView?: boolean;
    showKanbanView?: boolean;
    tableLabel?: string;
    cardsLabel?: string;
    kanbanLabel?: string;
}
export declare function DataView<T>({ data, viewMode: controlledViewMode, onViewModeChange, renderTable, renderCards, renderKanban, showTableView, showCardsView, showKanbanView, tableLabel, cardsLabel, kanbanLabel, }: DataViewProps<T>): import("react/jsx-runtime").JSX.Element;
interface ViewToggleProps {
    viewMode: ViewMode;
    onChange: (mode: ViewMode) => void;
    showTable?: boolean;
    showCards?: boolean;
    showKanban?: boolean;
    tableLabel?: string;
    cardsLabel?: string;
    kanbanLabel?: string;
}
export declare function ViewToggle({ viewMode, onChange, showTable, showCards, showKanban, tableLabel, cardsLabel, kanbanLabel, }: ViewToggleProps): import("react/jsx-runtime").JSX.Element | null;
interface AvatarProps {
    name: string;
    size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
    className?: string;
}
export declare function Avatar({ name, size, className }: AvatarProps): import("react/jsx-runtime").JSX.Element;
interface StatusBadgeProps {
    status: 'active' | 'inactive' | 'pending' | 'warning' | 'error';
    label: string;
    showDot?: boolean;
    size?: 'sm' | 'md';
}
export declare function StatusBadge({ status, label, showDot, size }: StatusBadgeProps): import("react/jsx-runtime").JSX.Element;
interface RoleBadgeProps {
    role: string;
    variant?: 'accent' | 'default';
    icon?: ReactNode;
}
export declare function RoleBadge({ role, variant, icon }: RoleBadgeProps): import("react/jsx-runtime").JSX.Element;
interface UserCardProps {
    children: ReactNode;
    onClick?: () => void;
    className?: string;
}
export declare function DataCard({ children, onClick, className }: UserCardProps): import("react/jsx-runtime").JSX.Element;
interface KanbanColumnProps {
    title: string;
    count: number;
    color: 'success' | 'warning' | 'error' | 'default';
    children: ReactNode;
    isDragOver?: boolean;
    isDropDisabled?: boolean;
    onDragOver?: (e: React.DragEvent) => void;
    onDragLeave?: () => void;
    onDrop?: (e: React.DragEvent) => void;
}
export declare function KanbanColumn({ title, count, color, children, isDragOver, isDropDisabled, onDragOver, onDragLeave, onDrop }: KanbanColumnProps): import("react/jsx-runtime").JSX.Element;
interface KanbanCardProps {
    children: ReactNode;
    onClick?: () => void;
    draggable?: boolean;
    isDragging?: boolean;
    onDragStart?: () => void;
    onDragEnd?: () => void;
}
export declare function KanbanCard({ children, onClick, draggable, isDragging, onDragStart, onDragEnd }: KanbanCardProps): import("react/jsx-runtime").JSX.Element;
interface PaginationProps {
    page: number;
    totalPages: number;
    totalCount: number;
    pageSize?: number;
    onPageChange: (page: number) => void;
    itemLabel?: string;
    showInfo?: boolean;
    showFirstLast?: boolean;
}
export declare function Pagination({ page, totalPages, totalCount, pageSize, onPageChange, itemLabel, showInfo, showFirstLast, }: PaginationProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=DataView.d.ts.map