import type { DragEndEvent, SortableDivider } from "../../../../core/components/Sortable";
import type { AccentColorOptions } from "../../../../lib/colors/types";
import type { IconProps } from "../../../../ui";
export interface SortableItem {
    enabled: boolean;
    color?: string;
    icon?: IconProps["name"];
    isOther?: boolean;
    hideSettings?: boolean;
}
interface SortableColumnFunctions<T> {
    onRemove?: (item: T) => void;
    onEdit?: (item: T, targetElement: HTMLElement) => void;
    onClick?: (item: T) => void;
    onAdd?: (item: T) => void;
    onEnable?: (item: T) => void;
    getItemName: (item: T) => string;
    onColorChange?: (item: T, color: string) => void;
}
interface ChartSettingOrderedItemsProps<T extends SortableItem> extends SortableColumnFunctions<T> {
    onSortEnd: ({ id, newIndex }: DragEndEvent) => void;
    items: T[];
    getId: (item: T) => string | number;
    removeIcon?: IconProps["name"];
    accentColorOptions?: AccentColorOptions;
    getItemColor?: (item: SortableItem) => string | undefined;
    dividers?: SortableDivider[];
}
export declare function ChartSettingOrderedItems<T extends SortableItem>({ onRemove, onSortEnd, onEdit, onAdd, onEnable, onClick, getItemName, items, onColorChange, getId, removeIcon, accentColorOptions, getItemColor, dividers, }: ChartSettingOrderedItemsProps<T>): import("react/jsx-runtime").JSX.Element;
export {};
