import { SchemaInitializerItemType } from '@tachybase/client';
import { Instruction } from '../../../nodes/default-node/interface';
import { AssigneesSelect } from './AssigneesSelect';
import { ModeConfig } from './ModeConfig';
import { SchemaConfig, SchemaConfigButton } from './SchemaConfig';
export default class extends Instruction {
    title: string;
    type: string;
    group: string;
    icon: string;
    color: string;
    description: string;
    fieldset: {
        assignees: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            'x-component-props': {};
            required: boolean;
            default: any[];
        };
        mode: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            default: number;
            'x-reactions': {
                dependencies: string[];
                fulfill: {
                    state: {
                        visible: string;
                    };
                };
            };
        };
        schema: {
            type: string;
            title: string;
            'x-decorator': string;
            'x-component': string;
            properties: {
                schema: {
                    type: string;
                    'x-component': string;
                    default: any;
                };
            };
        };
        forms: {
            type: string;
            default: {};
        };
    };
    components: {
        SchemaConfigButton: typeof SchemaConfigButton;
        SchemaConfig: typeof SchemaConfig;
        ModeConfig: typeof ModeConfig;
        AssigneesSelect: typeof AssigneesSelect;
    };
    useVariables({ key, title, config }: {
        key: any;
        title: any;
        config: any;
    }, { types, fieldNames }: {
        types: any;
        fieldNames?: {
            readonly label: "label";
            readonly value: "value";
            readonly children: "children";
        };
    }): {
        value: any;
        label: any;
        children: {
            key: string;
            value: string;
            label: any;
            title: any;
            children: import("../../..").VariableOption[];
        }[];
    };
    useInitializers(node: any): SchemaInitializerItemType | null;
    isAvailable({ engine, workflow, upstream, branchIndex }: {
        engine: any;
        workflow: any;
        upstream: any;
        branchIndex: any;
    }): boolean;
}
