/**
 * 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.
 */
export declare const FLOW_SURFACE_PUBLIC_RELATION_FIELD_TYPES: readonly ["text", "select", "picker", "subForm", "subFormList", "subDetails", "subDetailsList", "subTable", "popupSubTable"];
export type FlowSurfacePublicRelationFieldType = (typeof FLOW_SURFACE_PUBLIC_RELATION_FIELD_TYPES)[number];
export declare const FLOW_SURFACE_RESERVED_RELATION_FIELD_TYPES: readonly ["cascade", "upload", "preview"];
export declare const FLOW_SURFACE_PUBLIC_FIELD_TYPE_SET: Set<string>;
export declare const FLOW_SURFACE_INTERNAL_FIELD_KEYS: string[];
export declare function assertNoInternalFieldKeys(input: Record<string, any> | undefined, context: string): void;
export declare function normalizePublicFieldType(value: any, context: string): FlowSurfacePublicRelationFieldType | undefined;
export declare function normalizePublicFieldNameList(value: any, context: string): string[] | undefined;
export declare function getPublicFieldTypeForUse(use?: string): FlowSurfacePublicRelationFieldType | undefined;
export declare function resolveRelationFieldType(input: {
    fieldType: any;
    containerUse: string;
    field: any;
    dataSourceKey: string;
    getCollection: (dataSourceKey: string, collectionName: string) => any;
    fields?: any;
    titleField?: any;
    openMode?: any;
    popupSize?: any;
    pageSize?: any;
    showIndex?: any;
    applyDefaults?: boolean;
    context: string;
    actionName?: string;
    titleFieldPath?: string;
    fieldPath?: string;
}): {
    fieldType: "subForm" | "select" | "text" | "picker" | "subFormList" | "subDetails" | "subDetailsList" | "subTable" | "popupSubTable";
    fieldUse: string;
    cardinality: "single" | "multi";
    targetCollection: any;
    fields: any[];
    selectorFields: any[];
    titleField: any;
    openMode: any;
    popupSize: any;
    pageSize: any;
    showIndex: any;
};
export declare function usesNestedRelationFields(fieldUse?: string): boolean;
