import { default as React } from 'react'; export interface ItemListAction { /** Unique identifier for the action */ id: string; /** Button label */ label: string; /** Click handler */ onClick: () => void; /** Optional icon to show before label */ icon?: React.ReactNode; /** Button variant */ variant?: 'primary' | 'secondary' | 'ghost'; /** Disabled state */ disabled?: boolean; } export interface ItemListProps { /** Header title */ title: string; /** Optional subtitle/description under the title */ subtitle?: string; /** Array of items to display */ items: T[]; /** Render function for each item */ renderItem: (item: T, index: number) => React.ReactNode; /** Function to extract unique key for each item */ keyExtractor: (item: T, index: number) => string; /** Optional CTA buttons for the header */ actions?: ItemListAction[]; /** Message to show when list is empty */ emptyMessage?: string; /** Optional icon/illustration for empty state */ emptyIcon?: React.ReactNode; /** Optional action for empty state */ emptyAction?: { label: string; onClick: () => void; }; /** Show loading state */ loading?: boolean; /** Additional className for the container */ className?: string; /** Additional className for the header */ headerClassName?: string; /** Additional className for the list container */ listClassName?: string; /** Spacing between items */ spacing?: 'none' | 'sm' | 'md' | 'lg'; /** Whether to show dividers between items */ showDividers?: boolean; } /** * ItemList Component * * A flexible list component with header, optional CTA buttons, and empty state. * Not a table - designed for rendering custom list items without columns. * * @example * ```tsx * ( *
*

{project.name}

*

{project.description}

*
* )} * keyExtractor={(project) => project.id} * actions={[ * { id: 'new', label: 'New Project', onClick: handleNew, variant: 'primary' } * ]} * emptyMessage="No projects yet" * /> * ``` */ export declare function ItemList({ title, subtitle, items, renderItem, keyExtractor, actions, emptyMessage, emptyIcon, emptyAction, loading, className, headerClassName, listClassName, spacing, showDividers, }: ItemListProps): import("react/jsx-runtime").JSX.Element; export default ItemList; //# sourceMappingURL=item-list.d.ts.map