/**
 * 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 { FlowSurfaceActionScope, FlowSurfaceCatalogItem, FlowSurfaceLayoutCapabilities, FlowSurfaceNodeContract, FlowSurfaceNodeDomain } from './types';
export declare const READONLY_NODE_CONTRACT: FlowSurfaceNodeContract;
export declare function getSupportedFieldComponentUseSet(input: {
    containerUse: string;
    field?: any;
    enabledPackages?: ReadonlySet<string>;
    dataSourceKey?: string;
    getCollection?: (dataSourceKey: string, collectionName: string) => any;
}): Set<string>;
export declare function resolveSupportedFieldCapability(input: {
    containerUse: string;
    field?: any;
    requestedFieldUse?: string;
    requestedFieldUseMode?: 'fieldUse' | 'fieldType';
    requestedWrapperUse?: string;
    allowUnresolvedFieldUse?: boolean;
    requestedRenderer?: string;
    requestedType?: string;
    enabledPackages?: ReadonlySet<string>;
    dataSourceKey?: string;
    getCollection?: (dataSourceKey: string, collectionName: string) => any;
}): {
    wrapperUse: any;
    fieldUse: any;
    inferredFieldUse: any;
    standaloneUse: string;
    renderer: any;
} | {
    wrapperUse: string;
    fieldUse: any;
    inferredFieldUse: any;
    standaloneUse: any;
    renderer: string;
};
export declare function getAvailableActionCatalogItems(containerUse?: string, scope?: FlowSurfaceActionScope, enabledPackages?: ReadonlySet<string>): FlowSurfaceCatalogItem[];
export declare const blockCatalog: FlowSurfaceCatalogItem[];
export declare function getAvailableBlockCatalogItems(containerUse?: string, enabledPackages?: ReadonlySet<string>): FlowSurfaceCatalogItem[];
export declare const actionCatalog: FlowSurfaceCatalogItem[];
export declare const ACTION_PUBLIC_KEYS: string[];
export declare const SERVICE_SUPPORTED_FLOW_SURFACE_BLOCK_KEYS: string[];
export declare const BLOCK_CATALOG_BY_KEY: Map<string, FlowSurfaceCatalogItem>;
export declare const BLOCK_CATALOG_BY_USE: Map<string, FlowSurfaceCatalogItem>;
export declare const ACTION_CATALOG_BY_KEY: Map<string, FlowSurfaceCatalogItem[]>;
export declare const ACTION_CATALOG_BY_USE: Map<string, FlowSurfaceCatalogItem[]>;
export declare const BLOCK_KEY_BY_USE: Map<string, string>;
export declare const ACTION_KEY_BY_USE: Map<string, string>;
export declare function isCatalogItemAvailable(item: Pick<FlowSurfaceCatalogItem, 'kind' | 'use'>, enabledPackages?: ReadonlySet<string>): boolean;
export declare function filterAvailableCatalogItems<T extends Pick<FlowSurfaceCatalogItem, 'kind' | 'use'>>(items: T[], enabledPackages?: ReadonlySet<string>): T[];
export declare function resolveSupportedBlockCatalogItem(input: {
    type?: string;
    use?: string;
    containerUse?: string;
}, options?: {
    context?: string;
    enabledPackages?: ReadonlySet<string>;
    requireCreateSupported?: boolean;
    skipContainerValidation?: boolean;
}): FlowSurfaceCatalogItem;
export declare function resolveSupportedActionCatalogItem(input: {
    type?: string;
    use?: string;
    containerUse?: string;
}, options?: {
    context?: string;
    enabledPackages?: ReadonlySet<string>;
    requireCreateSupported?: boolean;
}): FlowSurfaceCatalogItem;
export declare function getNodeContract(use?: string): FlowSurfaceNodeContract;
export declare function getEditableDomainsForUse(use?: string): FlowSurfaceNodeDomain[];
export declare function getSettingsSchemaForUse(use?: string): Record<string, any>;
export declare function getLayoutCapabilitiesForUse(use?: string): FlowSurfaceLayoutCapabilities | undefined;
