import React from 'react';
import { ISchema, Schema } from '@tachybase/schema';
import { CollectionFieldOptions_deprecated } from '../../../collection-manager';
import { FieldOption, Option } from '../type';
export interface IsDisabledParams {
    option: FieldOption;
    collectionField: CollectionFieldOptions_deprecated;
    uiSchema: ISchema;
    /** 消费变量值的字段 */
    targetFieldSchema: Schema;
    getCollectionField: (name: string) => CollectionFieldOptions_deprecated;
}
interface BaseProps {
    collectionField: CollectionFieldOptions_deprecated;
    /** 当前字段的 `uiSchema`，和 `collectionField.uiSchema` 不同，该值也包含操作符中 schema（参见 useValues） */
    uiSchema: any;
    /** 消费变量值的字段 */
    targetFieldSchema?: Schema;
    maxDepth?: number;
    name: string;
    title: string;
    /**
     * 变量所对应的 collectionName，例如：$user 对应的 collectionName 是 users
     */
    collectionName: string;
    /**
     * 不需要禁用选项，一般会在表达式中使用
     */
    noDisabled?: boolean;
    /**
     * 不需要二级菜单
     */
    noChildren?: boolean;
    /**
     * 对每一个关系字段的 fields 进行过滤
     * @param fields
     * @param option
     */
    returnFields?(fields: FieldOption[], option: Option): FieldOption[];
    dataSource?: string;
}
interface BaseVariableProviderProps {
    /**
     * 每一个选项都会调用该方法，返回 true 表示禁用该选项，当 `noDisabled` 为 true 时，该方法不会被调用
     */
    isDisabled?: (params: IsDisabledParams) => boolean;
    children?: React.ReactNode;
}
export declare const BaseVariableProvider: (props: BaseVariableProviderProps) => import("react/jsx-runtime").JSX.Element;
export declare const useBaseVariable: ({ collectionField, uiSchema, targetFieldSchema, maxDepth, name, title, collectionName, noChildren, noDisabled, dataSource, returnFields, }: BaseProps) => Option;
export {};
