import { SchemaInitializerItemType } from '@tachybase/client';
import { getOptions } from '@tego/client';
import { RadioWithTooltip } from '../components/RadioWithTooltip';
import { WorkflowVariableTextArea } from '../variable';
import { Instruction } from './default-node/interface';
/** 节点: 运算 */
export default class extends Instruction {
    title: string;
    type: string;
    group: string;
    icon: string;
    color: string;
    description: string;
    fieldset: {
        engine: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            'x-component-props': {
                getOptions: typeof getOptions;
            };
            required: boolean;
            default: string;
        };
        expression: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            'x-component-props': {
                changeOnSelect: boolean;
            };
            "x-validator"(value: any, rules: any, { form }: {
                form: any;
            }): string;
            'x-reactions': {
                dependencies: string[];
                fulfill: {
                    schema: {
                        description: string;
                    };
                };
            }[];
            required: boolean;
        };
        transString: {
            type: string;
            'x-decorator': string;
            'x-component': string;
            'x-content': string;
            'x-reactions': {
                dependencies: string[];
                fulfill: {
                    state: {
                        visible: string;
                    };
                };
            }[];
        };
        remarks: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            'x-component-props': {
                autoSize: {
                    minRows: number;
                };
                placeholder: string;
            };
        };
    };
    scope: {
        renderEngineReference: (key: string) => import("react/jsx-runtime").JSX.Element;
    };
    components: {
        WorkflowVariableTextArea: typeof WorkflowVariableTextArea;
        RadioWithTooltip: typeof RadioWithTooltip;
        ValueBlock: (() => JSX.Element) & {
            Initializer: () => JSX.Element;
            Result: (props: any) => JSX.Element;
            Designer: () => JSX.Element;
        };
    };
    useVariables({ key, title }: {
        key: any;
        title: any;
    }, { types, fieldNames }: {
        types: any;
        fieldNames?: {
            readonly label: "label";
            readonly value: "value";
            readonly children: "children";
        };
    }): {
        value: any;
        label: any;
    };
    useInitializers(node: any): SchemaInitializerItemType;
}
