/**
 * 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 type { FlowSettingsContext } from '@nocobase/flow-engine';
import { AdminLayoutMenuCreationMeta, AdminLayoutMenuCreationParams, AdminLayoutMenuCreationType, AdminLayoutMenuInsertPosition, getAdminLayoutMenuMovePositionOptions } from './AdminLayoutMenuUtils';
import { type NocoBaseDesktopRoute } from './route-types';
declare const buildLinkSettingSchema: (t: (title: any) => any) => {
    href: {
        title: any;
        type: string;
        'x-decorator': string;
        'x-component': string;
        'x-component-props': {
            rows: number;
            maxRows: number;
        };
        description: any;
    };
    params: {
        type: string;
        title: any;
        'x-component': string;
        'x-decorator': string;
        items: {
            type: string;
            properties: {
                space: {
                    type: string;
                    'x-component': string;
                    properties: {
                        name: {
                            type: string;
                            'x-decorator': string;
                            'x-component': string;
                            'x-component-props': {
                                placeholder: any;
                            };
                        };
                        value: {
                            type: string;
                            'x-decorator': string;
                            'x-component': string;
                            'x-component-props': {
                                placeholder: any;
                                rows: number;
                                maxRows: number;
                                useTypedConstant: boolean;
                                changeOnSelect: boolean;
                            };
                        };
                        remove: {
                            type: string;
                            'x-decorator': string;
                            'x-component': string;
                        };
                    };
                };
            };
        };
        properties: {
            add: {
                type: string;
                title: any;
                'x-component': string;
            };
        };
    };
    openInNewWindow: {
        type: string;
        'x-content': any;
        'x-decorator': string;
        'x-component': string;
    };
};
export declare const insertRouteSchema: (api: {
    request: (options: any) => Promise<any>;
}, schema: Record<string, any>) => Promise<void>;
export declare const getMenuCreationDefaultParams: (meta: AdminLayoutMenuCreationMeta | undefined) => AdminLayoutMenuCreationParams;
declare const MENU_TYPE_OPTIONS: Array<{
    label: string;
    value: AdminLayoutMenuCreationType;
}>;
export declare const buildMenuBasicSchema: (t: (title: any) => any) => Record<string, any>;
export declare const getMenuEditDefaultParams: (route: NocoBaseDesktopRoute | undefined) => AdminLayoutMenuCreationParams;
export declare const getMenuCreationUiSchema: (t: (title: any) => any, meta: AdminLayoutMenuCreationMeta | undefined) => Record<string, any>;
export declare const createInsertMenuStep: (options: {
    title: string;
    insertPosition: AdminLayoutMenuInsertPosition;
    hideInSettings?: (ctx: FlowSettingsContext<any>) => Promise<boolean>;
    canCreate?: (route: NocoBaseDesktopRoute) => boolean;
    resolveParentRoute: (ctx: FlowSettingsContext<any>, route: NocoBaseDesktopRoute) => NocoBaseDesktopRoute | undefined;
}) => Record<string, any>;
export declare const toTreeSelectItems: (routes: NocoBaseDesktopRoute[], ctx: Pick<FlowSettingsContext<any>, 'resolveJsonTemplate' | 't'>) => any;
export declare const findPrevSiblingRoute: (routes: NocoBaseDesktopRoute[], currentRoute: NocoBaseDesktopRoute | undefined) => any;
export declare const findNextSiblingRoute: (routes: NocoBaseDesktopRoute[], currentRoute: NocoBaseDesktopRoute | undefined) => any;
export declare const matchesRoutePath: (route: NocoBaseDesktopRoute | undefined, pathname: string, basename?: string) => boolean;
export declare const buildInsertRouteSchema: (menuType: AdminLayoutMenuCreationType, pageSchemaUid: string, tabSchemaUid: string, tabSchemaName: string) => {
    type: string;
    'x-component': string;
    'x-uid': any;
};
export { getAdminLayoutMenuMovePositionOptions, MENU_TYPE_OPTIONS, buildLinkSettingSchema };
