import React from 'react';
import { Instruction, RadioWithTooltip } from '@tachybase/module-workflow/client';
export declare class ApprovalInstruction extends Instruction {
    title: string;
    type: string;
    group: string;
    icon: string;
    color: string;
    description: string;
    options: {
        label: string;
        key: string;
        value(): {
            branchMode: boolean;
            applyDetail: string;
        };
    }[];
    Component: ({ data }: {
        data: any;
    }) => import("react/jsx-runtime").JSX.Element;
    components: {
        NegotiationConfig: ({ value, onChange }: {
            value: any;
            onChange: any;
        }) => import("react/jsx-runtime").JSX.Element;
        RadioWithTooltip: typeof RadioWithTooltip;
        ArrayItems: import("@tachybase/schema").ReactFC<React.HTMLAttributes<HTMLDivElement>> & import("@tego/client").ArrayBaseMixins & {
            Item: import("@tachybase/schema").ReactFC<React.HTMLAttributes<HTMLDivElement> & {
                type?: "card" | "divide";
            }>;
        };
        AssigneesAddButton: () => import("react/jsx-runtime").JSX.Element;
        AssigneesSelect: (props: any) => import("react/jsx-runtime").JSX.Element;
        ProviderConfigButton: (props: any) => import("react/jsx-runtime").JSX.Element;
        ConfigButton: (props: any) => import("react/jsx-runtime").JSX.Element;
        ViewApplyShowDetailModal: () => import("react/jsx-runtime").JSX.Element;
    };
    fieldset: {
        branchMode: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            'x-component-props': {
                disabled: boolean;
            };
            enum: {
                value: boolean;
                label: import("react/jsx-runtime").JSX.Element;
            }[];
            default: boolean;
        };
        assignees: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            'x-component-props': {
                className: string;
            };
            items: {
                type: string;
                'x-component': string;
                'x-component-props': {
                    className: string;
                };
                properties: {
                    sort: {
                        type: string;
                        'x-decorator': string;
                        'x-component': string;
                    };
                    input: {
                        type: string;
                        'x-decorator': string;
                        'x-component': string;
                    };
                    remove: {
                        type: string;
                        'x-decorator': string;
                        'x-component': string;
                    };
                };
            };
            required: boolean;
            properties: {
                add: {
                    type: string;
                    title: string;
                    'x-component': string;
                    'x-component-props': {
                        isAddition: boolean;
                    };
                };
            };
        };
        negotiation: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            default: number;
        };
        order: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            'x-component-props': {
                options: {
                    label: string;
                    value: boolean;
                    tooltip: string;
                }[];
            };
            default: boolean;
        };
        endOnReject: {
            type: string;
            'x-decorator': string;
            'x-component': string;
            'x-content': string;
            description: string;
            'x-reactions': {
                dependencies: string[];
                fulfill: {
                    state: {
                        visible: string;
                    };
                };
            }[];
        };
        applyDetail: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            properties: {
                configButton: {
                    type: string;
                    'x-component': string;
                    properties: {
                        applyDetail: {
                            type: string;
                            'x-component': string;
                        };
                    };
                };
            };
            required: boolean;
        };
    };
    isAvailable({ workflow, upstream, branchIndex }: {
        workflow: any;
        upstream: any;
        branchIndex: any;
    }): boolean;
}
