///
/**
* Cells are the elements of the graph model. They represent the state
* of the groups, vertices and edges in a graph.
*
* ### Custom attributes
* For custom attributes we recommend using an XML node as the value of a cell.
* The following code can be used to create a cell with an XML node as the value:
* @example
* ```javascript
* var doc = mxUtils.createXmlDocument();
* var node = doc.createElement('MyNode')
* node.setAttribute('label', 'MyLabel');
* node.setAttribute('attribute1', 'value1');
* graph.insertVertex(graph.getDefaultParent(), null, node, 40, 40, 80, 30);
* ```
*
* For the label to work, {@link mxGraph.convertValueToString} and
* {@link mxGraph.cellLabelChanged} should be overridden as follows:
*
* @example
* ```javascript
* graph.convertValueToString(cell)
* {
* if (mxUtils.isNode(cell.value))
* {
* return cell.getAttribute('label', '')
* }
* };
*
* var cellLabelChanged = graph.cellLabelChanged;
* graph.cellLabelChanged(cell, newValue, autoSize)
* {
* if (mxUtils.isNode(cell.value))
* {
* // Clones the value for correct undo/redo
* var elt = cell.value.cloneNode(true);
* elt.setAttribute('label', newValue);
* newValue = elt;
* }
*
* cellLabelChanged.apply(this, arguments);
* };
* ```
* @class mxCell
*/
declare class mxCell {
/**
* @param {*} value Optional object that represents the cell value.
* @param {mxGeometry} geometry Optional that specifies the geometry.
* @param {string} style Optional formatted string that defines the style.
*/
constructor(value?: any, geometry?: mxGeometry, style?: string);
/**
* @see {mxGraph.getCellOverlays}
*
* @type {Array}
*/
overlays: Array;
/**
* Holds the Id. Default is null.
*/
id: string;
/**
* Holds the user object. Default is null.
*/
value: any;
/**
* Holds the . Default is null.
*/
geometry: mxGeometry;
/**
* Holds the style as a string of the form [(stylename|key=value);]. Default is
* null.
*/
style: string;
/**
* Specifies whether the cell is a vertex. Default is false.
*/
vertex: boolean;
/**
* Specifies whether the cell is an edge. Default is false.
*/
edge: boolean;
/**
* Specifies whether the cell is connectable. Default is true.
*/
connectable: boolean;
/**
* Specifies whether the cell is visible. Default is true.
*/
visible: boolean;
/**
* Specifies whether the cell is collapsed. Default is false.
*/
collapsed: boolean;
/**
* Reference to the parent cell.
*/
parent: mxCell;
/**
* Reference to the source terminal.
*/
source: mxCell;
/**
* Reference to the target terminal.
*/
target: mxCell;
/**
* Holds the child cells.
*/
children: Array;
/**
* Holds the edges.
*/
edges: Array;
/**
* List of members that should not be cloned inside . This field is
* passed to and is not made persistent in .
* This is not a convention for all classes, it is only used in this class
* to mark transient fields since transient modifiers are not supported by
* the language.
*/
mxTransient: Array;
/**
* Returns the Id of the cell as a string.
*/
getId(): string;
/**
* Sets the Id of the cell to the given string.
*/
setId(id: string): void;
/**
* Returns the user object of the cell. The user
* object is stored in .
*/
getValue(): any;
/**
* Sets the user object of the cell. The user object
* is stored in .
*/
setValue(value: any): void;
/**
* Changes the user object after an in-place edit
* and returns the previous value. This implementation
* replaces the user object with the given value and
* returns the old user object.
*/
valueChanged(newValue: any): any;
/**
* Returns the that describes the .
*/
getGeometry(): mxGeometry;
/**
* Sets the to be used as the .
*/
setGeometry(geometry: mxGeometry): void;
/**
* Returns a string that describes the