import Vue from "vue-property-decorator"; import { SpecialValueMap } from "./global"; export interface FlowProvide { instance: Vue.Vue; moveable: boolean; } export interface FlowNodeItem { id: string; x: number; y: number; w: number; h: number; showFocus: string; childNode: string[]; lineData: FlowLineItem[]; canvasScale: number; componentData: T; } export interface FlowLineItem { originId: string; targetId: string; originDirection: number; targetDirection: number; path: Path2D | null; type: string; lineStyle: string; lineLayout: FlowNodeLayout[]; } export interface FlowNodeLayout { x: T; y: T; } export interface FlowLineConfig { isOrigin: boolean; origin: { id: string; direction: number; targetDirection: number; }; } export interface TipLine { top: number; bottom: number; } export interface CommonSelectData { label: string; value: T; } export interface FlowEventParams { event: T; id: string; direction: number; } export interface FlowEmitParams { event?: T; id?: string; direction?: number; } export interface FlowNodeInfo { x: number; y: number; children: SpecialValueMap; } export interface FlowItemSize { w: number; h: number; } export interface FlowTipConfig { vertical: { key: keyof FlowNodeLayout; item: keyof FlowItemSize; }; horizontal: { key: keyof FlowNodeLayout; item: keyof FlowItemSize; }; } export interface FlowNodeLayoutBorder { x: number; y: number; w: number; h: number; } export interface FlowLinePoint { startId: string; endId: string; } export declare class Flow extends Vue.Vue { isCreatedTempLine: boolean; refreshFlowLayout: () => void; connectNodeByLine: (params: FlowLinePoint) => void; replaceNodeId: (oldId: string, newId: string) => void; initLineListData: () => void; setLineStyle: (params: FlowLinePoint, style?: string) => void; setLineStyleByNode: (ids: string[], style?: string) => void; } export interface FlowEmitParams { event?: T; id?: string; direction?: number; } export interface FlowDropData { data: T; layout: FlowNodeLayout; }