import { ReactElement } from 'react';
import { ItemProps } from 'react-stately';
import { CubeItemProps } from './content/Item/Item';
export interface CubeCollectionItemProps<T> extends ItemProps<T>, Omit<CubeItemProps, 'children'> {
    onAction?: () => void;
    wrapper?: (item: ReactElement) => ReactElement;
    [key: string]: any;
}
/**
 * Filters out service props from collection item props, returning only
 * props that should be passed to the Item component.
 *
 * This eliminates the need to manually extract and pass Item props
 * in components like MenuItem, ListBox Option, and Select Option.
 *
 * @param itemProps - The props from a collection item (node.props)
 * @returns Filtered props safe to spread onto Item component
 *
 * @example
 * ```tsx
 * const itemProps = filterCollectionItemProps(item.props);
 * return <Item {...itemProps} />;
 * ```
 */
export declare function filterCollectionItemProps(itemProps: Record<string, any> | undefined): Record<string, any>;
declare const _CollectionItem: (<T>(props: CubeCollectionItemProps<T>) => ReactElement) & {
    Action: import("react").ForwardRefExoticComponent<Omit<import("./actions/ItemAction").CubeItemActionProps, "ref"> & import("react").RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement>>>;
    Badge: import("react").ForwardRefExoticComponent<import("./content/ItemBadge").CubeItemBadgeProps & import("react").RefAttributes<HTMLDivElement>>;
};
export { _CollectionItem as CollectionItem };
