import { EventEmitter } from '@angular/core'; import { Surface, LayoutSpec, jsPlumbToolkit, jsPlumbToolkitOptions, SurfaceRenderParams } from 'jsplumbtoolkit'; import { AngularViewOptions, jsPlumbService, ViewNodeAngularOptions } from 'jsplumbtoolkit-angular'; import { DataFlowNodeFactoryParams } from '../models/DataFlowNodeFactoryParams'; export declare abstract class LCUJSPlumbToolkitIOService { protected jsPlumb: jsPlumbService; protected ioName: string; CanvasClicked: EventEmitter; EdgeAdded: EventEmitter; EdgeDoubleClicked: EventEmitter; EdgeLabelClicked: EventEmitter; ModeChanged: EventEmitter; NodeAdded: EventEmitter; NodeFactoried: EventEmitter; NodeTapped: EventEmitter; PortClicked: EventEmitter; Repainted: EventEmitter; SourceClicked: EventEmitter; TargetClicked: EventEmitter; constructor(jsPlumb: jsPlumbService); ExportFromSurface(surface: Surface): Promise; GetSurface(surfaceId: string): Promise; LoadOntoSurface(surface: Surface, output: TOutput, refreshOutput: boolean, layoutSpec?: LayoutSpec | string): Promise; LoadOutput(surface: Surface, output: TOutput): Promise; LoadRenderParams(): SurfaceRenderParams; LoadToolkitParams(): jsPlumbToolkitOptions; /** * Setup view options */ LoadView(): AngularViewOptions; protected abstract exportOutput(toolkit: jsPlumbToolkit, params: {}): TOutput; protected loadDefaultLayoutSpec(type?: string): LayoutSpec; protected loadParentNode(): ViewNodeAngularOptions; protected abstract loadIOName(): string; protected abstract parseOutput(output: TOutput, toolkit: jsPlumbToolkit, params: {}): void; }