import * as React from 'react'; import { Diagram, ObjectData, Key, Model } from 'gojs'; import { DiagramModel, BaseNodeModel, LinkModel } from './model'; import { ModelChangeEvent } from './modelChangeEvent'; import { DiagramNotificationDelegate } from './modelChangedhandler'; export interface GojsDiagramProps { model: DiagramModel; initialModelData?: ObjectData; createDiagram: (id: string) => Diagram; diagramId: string; className: string; onModelChange?: (event: ModelChangeEvent) => void; linkFromPortIdProperty?: string; linkToPortIdProperty?: string; nodeCategoryProperty?: string; linkKeyProperty?: string; makeUniqueKeyFunction?: () => Key; makeUniqueLinkKeyFunction?: () => Key; copyNodeDataFunction?: (data: ObjectData, model: Model) => ObjectData; updateDiagramProps?: (myDiagram: Diagram) => void; defaultSelectedNode?: string; } export interface GojsModel extends Model { linkDataArray: ObjectData[]; addLinkDataCollection: (links: ObjectData[]) => void; removeLinkDataCollection: (links: ObjectData[]) => void; addLinkData: (link: ObjectData) => void; removeLinkData: (link: ObjectData) => void; } declare class GojsDiagram extends React.PureComponent> implements DiagramNotificationDelegate { private myDiagram; private divRef; private mountInterval; private eventsToDispatch; private modelChangedHandlers; constructor(props: GojsDiagramProps); componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(): void; init(): void; render(): JSX.Element; enqueueEvent(event: ModelChangeEvent): void; clear(): void; dispatchAll(): void; private modelChangedHandler; private applyAddRemoveNodesFromModel; private applyAddRemoveLinksFromModel; private applyUpdatesFromModel; } export default GojsDiagram;