import { RecordOfAnyType } from '../../../../types/base.types';
import { BpmnElement, BpmnStatementNode, CustomBpmnModdle, ModdleElement } from '../../../../types/bpmn.types';
import { UtilsService } from '../../../utils.service';
import { CreateStrategy } from '../../../../interfaces';
import * as i0 from "@angular/core";
export declare class CreateTaskStrategy implements CreateStrategy<ModdleElement> {
    private readonly moddle;
    private readonly utils;
    constructor(moddle: CustomBpmnModdle, utils: UtilsService);
    /**
     * It creates a BPMN element, sets its ID, and adds inputs and outputs to it
     * @param {BpmnElement} element - BpmnElement,
     * @param {BpmnStatementNode} node - BpmnStatementNode,
     * @param {RecordOfAnyType} attrs - RecordOfAnyType - This is a record of any type. It's used to pass
     * in any custom attributes that you want to add to the element.
     * @returns The moddle.create method is being called with the element.tag, and the customAttrs.
     */
    execute(element: BpmnElement, node: BpmnStatementNode, attrs: RecordOfAnyType): ModdleElement;
    /**
     * It creates a script that contains a JSON string that represents the node's data
     * @param {BpmnElement} element - BpmnElement - the element that is being converted
     * @param {BpmnStatementNode} node - The node that is being converted to a BPMN element.
     * @returns The input parameter for the script task.
     */
    private input;
    /**
     * It creates a new InputParameter element with the name outputVariable and the value of the
     * element's id
     * @param {BpmnElement} element - BpmnElement - the element that we want to create a parameter for
     * @returns A new InputParameter object with the name 'outputVariable' and the value of the element's
     * id.
     */
    private output;
    /**
     * It takes an array of strings and returns a string of comma separated values
     * @param {string[]} ids - string[] - this is the array of ids that you want to transpose into a
     * string
     * @returns A string of ids separated by commas.
     */
    private transposeArrayToString;
    /**
     * It takes the inputs of the element, the node, and the state of the workflow, and returns a string
     * of JavaScript that will create a JSON object
     * @param {BpmnElement} element - BpmnElement - the element that is being processed
     * @param {BpmnStatementNode} node - BpmnStatementNode
     * @returns A string of javascript code that is used to create a JSON object.
     */
    private createJsonScript;
    /**
     * It returns the id of the previous node if the previous node is not a gateway, otherwise it returns
     * the id of the previous node's outgoing or elseOutgoing property depending on whether the current
     * node is a true or false branch of the gateway
     * @param element - The current element that is being processed.
     * @param {BpmnStatementNode} node - BpmnStatementNode - The node that is being processed
     * @returns The id of the previous element.
     */
    getInputFromPrev(element: BpmnElement, node: BpmnStatementNode): (string | undefined)[];
    static ɵfac: i0.ɵɵFactoryDeclaration<CreateTaskStrategy, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CreateTaskStrategy>;
}
