///
import { DraggableData, DraggableEvent } from 'react-draggable';
import { IChart, INode, IPort } from './chart';
import { IConfig } from './config';
import { IOffset, IPosition, ISize } from './generics';
/** Callback functions will be evaluated inside of a setState so they can always manipulate the chart state */
export declare type IStateCallback any> = (...params: Parameters) => (chart: IChart) => IChart;
export interface IOnDragNodeInput {
config?: IConfig;
event: DraggableEvent;
data: DraggableData;
id: string;
}
export declare type IOnDragNode = (input: IOnDragNodeInput) => void;
export interface IOnDragCanvasInput {
config?: IConfig;
data: any;
}
export declare type IOnDragCanvas = (input: IOnDragCanvasInput) => void;
export interface IOnDragNodeStopInput {
config?: IConfig;
event: MouseEvent;
data: DraggableData;
id: string;
}
export declare type IOnDragNodeStop = (input: IOnDragNodeStopInput) => void;
export interface IOnDragCanvasStopInput {
config?: IConfig;
data: any;
}
export declare type IOnDragCanvasStop = (input: IOnDragCanvasStopInput) => void;
export interface IOnPortPositionChangeInput {
config?: IConfig;
node: INode;
port: IPort;
el: HTMLDivElement;
nodesEl: HTMLDivElement | IOffset;
}
export declare type IOnPortPositionChange = (input: IOnPortPositionChangeInput) => void;
export interface ILinkBaseInput {
config?: IConfig;
linkId: string;
}
export interface IOnLinkBaseEvent extends ILinkBaseInput {
startEvent: React.MouseEvent;
fromNodeId: string;
fromPortId: string;
}
export declare type IOnLinkStart = (input: IOnLinkBaseEvent) => void;
export interface IOnLinkMoveInput extends IOnLinkBaseEvent {
toPosition: {
x: number;
y: number;
};
}
export declare type IOnLinkMove = (input: IOnLinkMoveInput) => void;
export declare type IOnLinkCancel = (input: IOnLinkBaseEvent) => void;
export interface IOnLinkCompleteInput extends IOnLinkBaseEvent {
toNodeId: string;
toPortId: string;
}
export declare type IOnLinkComplete = (input: IOnLinkCompleteInput) => void;
export declare type IOnLinkMouseEnter = (input: ILinkBaseInput) => void;
export declare type IOnLinkMouseLeave = (input: ILinkBaseInput) => void;
export declare type IOnLinkClick = (input: ILinkBaseInput) => void;
export declare type IOnCanvasClick = (input: {
config?: IConfig;
}) => void;
export declare type IOnDeleteKey = (input: {
config?: IConfig;
}) => void;
export interface INodeBaseInput {
config?: IConfig;
nodeId: string;
}
export declare type IOnNodeClick = (input: INodeBaseInput) => void;
export declare type IOnNodeDoubleClick = (input: INodeBaseInput) => void;
export interface IOnNodeSizeChangeInput extends INodeBaseInput {
size: ISize;
}
export declare type IOnNodeSizeChange = (input: IOnNodeSizeChangeInput) => void;
export declare type IOnNodeMouseEnter = (input: INodeBaseInput) => void;
export declare type IOnNodeMouseLeave = (input: INodeBaseInput) => void;
export interface IOnCanvasDropInput {
config?: IConfig;
data: any;
position: IPosition;
id: string;
}
export declare type IOnCanvasDrop = (input: IOnCanvasDropInput) => void;
export declare type IOnZoomCanvas = (input: {
config?: IConfig;
data: any;
}) => void;