import React from "react";
import { Active, CollisionDetection, DropAnimation, UniqueIdentifier } from "@dnd-kit/core";
import { NavigationEntry } from "../../types";
export declare function SortableNavigationCard({ entry, onClick }: {
    entry: NavigationEntry;
    onClick?: () => void;
}): import("react/jsx-runtime").JSX.Element;
export declare function NavigationGroupDroppable({ id, itemIds, children, isPotentialCardDropTarget }: {
    id: UniqueIdentifier;
    itemIds: UniqueIdentifier[];
    children: React.ReactNode;
    isPotentialCardDropTarget?: boolean;
}): import("react/jsx-runtime").JSX.Element;
export declare function SortableNavigationGroup({ groupName, children, disabled }: {
    groupName: string;
    children: React.ReactNode;
    disabled?: boolean;
}): import("react/jsx-runtime").JSX.Element;
export declare function useHomePageDnd({ items, setItems, disabled, onCardMovedBetweenGroups, onGroupMoved, onNewGroupDrop, onPersist }: {
    items: {
        name: string;
        entries: NavigationEntry[];
    }[];
    setItems: (newItemsOrUpdater: {
        name: string;
        entries: NavigationEntry[];
    }[] | ((currentItems: {
        name: string;
        entries: NavigationEntry[];
    }[]) => {
        name: string;
        entries: NavigationEntry[];
    }[])) => void;
    disabled: boolean;
    onCardMovedBetweenGroups?: (card: NavigationEntry) => void;
    onGroupMoved?: (groupName: string, oldIndex: number, newIndex: number) => void;
    onNewGroupDrop?: () => void;
    onPersist?: (latest: {
        name: string;
        entries: NavigationEntry[];
    }[]) => void;
}): {
    sensors: import("@dnd-kit/core").SensorDescriptor<import("@dnd-kit/core").SensorOptions>[];
    collisionDetection: CollisionDetection;
    onDragStart: ({ active }: {
        active: Active;
    }) => void;
    onDragOver: ({ active, over }: {
        active: Active;
        over: any;
    }) => void;
    onDragEnd: ({ active, over }: {
        active: Active;
        over: any;
    }) => void;
    onDragCancel: () => void;
    dropAnimation: DropAnimation;
    activeItemForOverlay: NavigationEntry | null;
    activeGroupData: {
        name: string;
        entries: NavigationEntry[];
    } | null;
    draggingGroupId: UniqueIdentifier | null;
    containers: string[];
    dndKitActiveNode: Active | null;
    isDraggingCardOnly: boolean;
    dialogOpenForGroup: string | null;
    setDialogOpenForGroup: React.Dispatch<React.SetStateAction<string | null>>;
    handleRenameGroup: (oldName: string, newName: string) => void;
    handleDialogClose: () => void;
    isHoveringNewGroupDropZone: boolean;
    setIsHoveringNewGroupDropZone: React.Dispatch<React.SetStateAction<boolean>>;
};
export declare function NewGroupDropZone({ disabled, setIsHovering }: {
    disabled: boolean;
    setIsHovering: (v: boolean) => void;
}): import("react/jsx-runtime").JSX.Element | null;
