/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
import React from 'react';
import { NocoBaseDesktopRoute } from '../../../route-switch/antd/admin-layout/route-types';
type ComposedMenu = React.FC<any> & {
    Item?: React.FC<any>;
    URL?: React.FC<any>;
    SubMenu?: React.FC<any>;
    Designer?: React.FC<any>;
};
export declare const ParentRouteContext: React.Context<NocoBaseDesktopRoute>;
export declare const useParentRoute: () => NocoBaseDesktopRoute;
/**
 * Note: The routes here are different from React Router routes - these refer specifically to menu routing/navigation items
 * @param collectionName
 * @returns
 */
export declare const useNocoBaseRoutes: (collectionName?: string) => {
    createRoute: (values: NocoBaseDesktopRoute, refreshAfterCreate?: boolean) => Promise<any>;
    updateRoute: (filterByTk: any, values: NocoBaseDesktopRoute, refreshAfterUpdate?: boolean) => Promise<any>;
    deleteRoute: (filterByTk: any, refreshAfterDelete?: boolean) => Promise<any>;
    moveRoute: ({ sourceId, targetId, targetScope, sortField, sticky, method, refreshAfterMove, }: {
        sourceId: string | number;
        targetId?: string | number;
        targetScope?: any;
        sortField?: string;
        sticky?: boolean;
        /**
         * Insertion type - specifies whether to insert before or after the target element
         */
        method?: 'insertBefore' | 'insertAfter' | 'prepend';
        refreshAfterMove?: boolean;
    }) => Promise<any>;
};
export declare const useMenuDragEnd: () => {
    onDragEnd: (event: any) => void;
};
export declare const Menu: ComposedMenu;
export {};
