import { record } from '@synnaxlabs/x';
import { ReactElement } from 'react';
import { Button } from '../button';
import { RenderProp } from '../component/renderProp';
export interface ItemRenderProps<K extends record.Key = record.Key> {
    index: number;
    key: K;
    itemKey: K;
    className?: string;
    translate?: number;
}
export type ItemProps<K extends record.Key, E extends Button.ElementType = "div"> = Omit<Button.ButtonProps<E>, "key" | "onSelect" | "translate"> & ItemRenderProps<K> & {
    draggingOver?: boolean;
    rightAligned?: boolean;
    highlightHovered?: boolean;
    onSelect?: (key: K) => void;
    selected?: boolean;
    hovered?: boolean;
};
export type ItemRenderProp<K extends record.Key> = RenderProp<ItemRenderProps<K>>;
export declare const Item: <K extends record.Key, E extends Button.ElementType = "div">({ itemKey, className, index, el, draggingOver, rightAligned, highlightHovered, selected, translate, onSelect, onClick, hovered, style, ...rest }: ItemProps<K, E>) => ReactElement;
//# sourceMappingURL=Item.d.ts.map