import type { Column, DropEventParams, Grid } from "../+types.js";
import type { GridBoxItem } from "./+types.js";
export interface OnDropParams<T> {
    readonly target: Column<T>;
    readonly src: Column<T>;
    readonly isBefore: boolean;
}
export interface OnRootDropParams<T> {
    readonly column: Column<T>;
}
export interface OnActionParams<T> {
    readonly column: Column<T>;
    readonly el: HTMLElement;
}
export interface UseColumnBoxItemArgs<T> {
    readonly grid: Grid<T>;
    readonly orientation?: "horizontal" | "vertical";
    readonly draggable?: boolean;
    readonly itemFilter?: (c: Column<T>) => boolean;
    readonly placeholder?: (el: HTMLElement) => HTMLElement;
    readonly onRootDrop?: (p: OnRootDropParams<T>) => void;
    readonly onDrop?: (p: OnDropParams<T>) => void;
    readonly onAction?: (c: OnActionParams<T>) => void;
    readonly onDelete?: (c: OnActionParams<T>) => void;
}
export declare function useColumnBoxItems<T>({ grid, onRootDrop, onDrop, onDelete, onAction, orientation, draggable, itemFilter, placeholder, }: UseColumnBoxItemArgs<T>): {
    rootProps: {
        accepted: string[];
        orientation: "horizontal" | "vertical" | undefined;
        onRootDrop: (p: DropEventParams) => void;
        grid: Grid<T>;
    };
    items: GridBoxItem<Column<T>>[];
};
