import { AbstractSession } from "@zowe/imperative";
import { accessT } from "./doc/ICreateWorkflow";
import { ICreatedWorkflow } from "./doc/ICreatedWorkflow";
import { ICreatedWorkflowLocal } from "./doc/ICreatedWorkflowLocal";
import { IVariable } from "./doc/IVariables";
/**
 * Class to handle creation of zOSMF workflow instance
 */
export declare class CreateWorkflow {
    /**
     * copied from ProvisioningService.ts
     * Parsers text with properties in key1=val1,key2=val2 format and returns IInputProperty[]
     * @param {string} propertiesText - required runtime property objects passed as a string.
     * @returns {IPropertiesInput[]} array of properties, @see {IPropertiesInput}
     * @memberof ProvisioningService
     */
    static parseProperties(propertiesText: string): IVariable[];
    /**
     * Create a zOSMF workflow instance
     * @param {AbstractSession} session                     - z/OSMF connection info
     * @param {string} WorkflowName                         - Name of the workflow that will be created
     * @param {string} WorkflowDefinitionFile               - Full path to USS file or DATASET/MEMBER with xml
     * @param {string} systemName                           - System where the workflow will run
     * @param {string} Owner                                - User ID of the workflow owner.
     * @param {string} VariableInputFile                    - Properties file with pre-specify values for workflow variables
     * @param {string} Variables                            - A list of one or more variables for the workflow.
     * @param {boolean} AssignToOwner                       - Indicates whether the workflow steps are assigned to the workflow owner
     * @param {accessT} AccessType                          - Specifies the access type for the workflow. Public, Restricted or Private.
     * @param {boolean} DeleteCompletedJobs                 - Specifies whether the job is deleted from the JES spool after it completes successfully.
     * @param {string} zOSMFVersion                         - Identifies the version of the zOSMF workflow service.
     * @returns {Promise<ICreatedWorkflow>}
     */
    static createWorkflow(session: AbstractSession, WorkflowName: string, WorkflowDefinitionFile: string, systemName: string, Owner: string, VariableInputFile?: string, Variables?: string, AssignToOwner?: boolean, AccessType?: accessT, DeleteCompletedJobs?: boolean, zOSMFVersion?: string): Promise<ICreatedWorkflow>;
    /**
     * Create a zOSMF workflow instance using local files
     * @param {AbstractSession} session                     - z/OSMF connection info
     * @param {string} WorkflowName                         - Name of the workflow that will be created
     * @param {string} WorkflowDefinitionFile               - Local workflow definition file
     * @param {string} systemName                           - System where the workflow will run
     * @param {string} Owner                                - User ID of the workflow owner.
     * @param {string} VariableInputFile                    - Local properties file with pre-specify values for workflow variables
     * @param {string} Variables                            - A list of one or more variables for the workflow.
     * @param {boolean} AssignToOwner                       - Indicates whether the workflow steps are assigned to the workflow owner
     * @param {accessT} AccessType                          - Specifies the access type for the workflow. Public, Restricted or Private.
     * @param {boolean} DeleteCompletedJobs                 - Specifies whether the job is deleted from the JES spool after it completes successfully.
     * @param {string} zOSMFVersion                         - Identifies the version of the zOSMF workflow service.
     * @param {boolean} keepFiles                           - Identifies if the uploaded uss files should be kept.
     * @param {string} customDir                            - Path to specific USS directory in which to upload the temp files.
     * @returns {Promise<ICreatedWorkflowLocal>}
     */
    static createWorkflowLocal(session: AbstractSession, WorkflowName: string, WorkflowDefinitionFile: string, systemName: string, Owner: string, VariableInputFile?: string, Variables?: string, AssignToOwner?: boolean, AccessType?: accessT, DeleteCompletedJobs?: boolean, keepFiles?: boolean, customDir?: string, zOSMFVersion?: string): Promise<ICreatedWorkflowLocal>;
    /**
     * Get a full path with file name for a temporary USS file
     * @param {string} userId                               - User ID to add to the file name.
     * @param {string} localFile                            - Local file name.
     * @param {string} customDir                            - Custom directory.
     * @returns {string}
     */
    static getTempFile(userId: string, localFile: string, customDir?: string): string;
    /**
     *  Upload USS files to default dir, or a user specified one
     * @param {AbstractSession} session                     - z/OSMF connection info.
     * @param {string} localFile                            - Local file to upload.
     * @param {string} remoteFile                           - Remote location to upload to.
     * @throws {ImperativeError}                            - In case something goes wrong.
     */
    static uploadTempFile(session: AbstractSession, localFile: string, remoteFile: string): Promise<void>;
    /**
     * Delete USS file
     * @param {AbstractSession} session                     - z/OSMF connection info.
     * @param {string} ussFileName                          - USS file to delete.
     */
    static deleteTempFile(session: AbstractSession, ussFileName: string): Promise<string>;
}
