import { ValidationBase } from "../helpers/validation/ValidationBase"; import { ParameterTypeModel } from "./ParameterTypeModel"; import { Serializable } from "../interfaces/Serializable"; import { CommandOutputBindingModel } from "./CommandOutputBindingModel"; import { ExpressionModel } from "./ExpressionModel"; import { Expression as V1Expression } from "../../mappings/v1.0/Expression"; import { Expression as SBDraft2Expression } from "../../mappings/d2sb/Expression"; import { EventHub } from "../helpers/EventHub"; export declare abstract class CommandOutputParameterModel extends ValidationBase implements Serializable { protected eventHub: EventHub; /** Unique identifier of output */ id: string; /** Human readable short name */ label: string; /** Human readable description */ description: string; /** Description of file types expected for output to be */ fileTypes: string[]; secondaryFiles: ExpressionModel[] | any; hasSecondaryFiles: boolean; hasSecondaryFilesInRoot: boolean; /** Complex object that holds logic and information about output's type property */ type: ParameterTypeModel; /** Flag if output is field of a parent record. Derived from type */ isField: boolean; /** Binding for connecting output files and CWL output description */ outputBinding: CommandOutputBindingModel; customProps: any; updateOutputBinding(binding?: CommandOutputBindingModel): void; abstract addSecondaryFile(file: V1Expression | SBDraft2Expression | string): ExpressionModel; protected _addSecondaryFile(file: V1Expression | SBDraft2Expression | string, exprConstructor: new (...args: any[]) => T, locBase: string): T; abstract updateSecondaryFiles(files: Array): any; protected _updateSecondaryFiles(files: Array): void; abstract removeSecondaryFile(index: number): any; protected _removeSecondaryFile(index: number): void; constructor(loc?: string, eventHub?: EventHub); abstract serialize(): any; abstract deserialize(attr: any): void; updateLoc(loc: string): void; validate(context: any): Promise; protected attachFileTypeListeners(): void; }