| import SeriesData from '../../data/SeriesData.js'; | 
| import { SeriesOption, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, OptionDataValue, RoamOptionMixin, SeriesLabelOption, ItemStyleOption, LineStyleOption, SymbolOptionMixin, BoxLayoutOptionMixin, Dictionary, SeriesLineLabelOption, StatesOptionMixin, GraphEdgeItemObject, OptionDataValueNumeric, CallbackDataParams, DefaultEmphasisFocus } from '../../util/types.js'; | 
| import SeriesModel from '../../model/Series.js'; | 
| import Graph from '../../data/Graph.js'; | 
| import GlobalModel from '../../model/Global.js'; | 
| import { VectorArray } from 'zrender/lib/core/vector.js'; | 
| import { ForceLayoutInstance } from './forceLayout.js'; | 
| import { LineDataVisual } from '../../visual/commonVisualTypes.js'; | 
| declare type GraphDataValue = OptionDataValue | OptionDataValue[]; | 
| interface GraphEdgeLineStyleOption extends LineStyleOption { | 
|     curveness?: number; | 
| } | 
| export interface GraphNodeStateOption<TCbParams = never> { | 
|     itemStyle?: ItemStyleOption<TCbParams>; | 
|     label?: SeriesLabelOption; | 
| } | 
| interface ExtraEmphasisState { | 
|     focus?: DefaultEmphasisFocus | 'adjacency'; | 
| } | 
| interface GraphNodeStatesMixin { | 
|     emphasis?: ExtraEmphasisState; | 
| } | 
| interface GraphEdgeStatesMixin { | 
|     emphasis?: ExtraEmphasisState; | 
| } | 
| export interface GraphNodeItemOption extends SymbolOptionMixin, GraphNodeStateOption, StatesOptionMixin<GraphNodeStateOption, GraphNodeStatesMixin> { | 
|     id?: string; | 
|     name?: string; | 
|     value?: GraphDataValue; | 
|     /** | 
|      * Fixed x position | 
|      */ | 
|     x?: number; | 
|     /** | 
|      * Fixed y position | 
|      */ | 
|     y?: number; | 
|     /** | 
|      * If this node is fixed during force layout. | 
|      */ | 
|     fixed?: boolean; | 
|     /** | 
|      * Index or name of category | 
|      */ | 
|     category?: number | string; | 
|     draggable?: boolean; | 
|     cursor?: string; | 
| } | 
| export interface GraphEdgeStateOption { | 
|     lineStyle?: GraphEdgeLineStyleOption; | 
|     label?: SeriesLineLabelOption; | 
| } | 
| export interface GraphEdgeItemOption extends GraphEdgeStateOption, StatesOptionMixin<GraphEdgeStateOption, GraphEdgeStatesMixin>, GraphEdgeItemObject<OptionDataValueNumeric> { | 
|     value?: number; | 
|     /** | 
|      * Symbol of both line ends | 
|      */ | 
|     symbol?: string | string[]; | 
|     symbolSize?: number | number[]; | 
|     ignoreForceLayout?: boolean; | 
| } | 
| export interface GraphCategoryItemOption extends SymbolOptionMixin, GraphNodeStateOption, StatesOptionMixin<GraphNodeStateOption, GraphNodeStatesMixin> { | 
|     name?: string; | 
|     value?: OptionDataValue; | 
| } | 
| export interface GraphSeriesOption extends SeriesOption<GraphNodeStateOption<CallbackDataParams>, GraphNodeStatesMixin>, SeriesOnCartesianOptionMixin, SeriesOnPolarOptionMixin, SeriesOnCalendarOptionMixin, SeriesOnGeoOptionMixin, SeriesOnSingleOptionMixin, SymbolOptionMixin<CallbackDataParams>, RoamOptionMixin, BoxLayoutOptionMixin { | 
|     type?: 'graph'; | 
|     coordinateSystem?: string; | 
|     legendHoverLink?: boolean; | 
|     layout?: 'none' | 'force' | 'circular'; | 
|     data?: (GraphNodeItemOption | GraphDataValue)[]; | 
|     nodes?: (GraphNodeItemOption | GraphDataValue)[]; | 
|     edges?: GraphEdgeItemOption[]; | 
|     links?: GraphEdgeItemOption[]; | 
|     categories?: GraphCategoryItemOption[]; | 
|     /** | 
|      * @deprecated | 
|      */ | 
|     focusNodeAdjacency?: boolean; | 
|     /** | 
|      * Symbol size scale ratio in roam | 
|      */ | 
|     nodeScaleRatio?: 0.6; | 
|     draggable?: boolean; | 
|     edgeSymbol?: string | string[]; | 
|     edgeSymbolSize?: number | number[]; | 
|     edgeLabel?: SeriesLineLabelOption; | 
|     label?: SeriesLabelOption; | 
|     itemStyle?: ItemStyleOption<CallbackDataParams>; | 
|     lineStyle?: GraphEdgeLineStyleOption; | 
|     emphasis?: { | 
|         focus?: Exclude<GraphNodeItemOption['emphasis'], undefined>['focus']; | 
|         scale?: boolean | number; | 
|         label?: SeriesLabelOption; | 
|         edgeLabel?: SeriesLabelOption; | 
|         itemStyle?: ItemStyleOption; | 
|         lineStyle?: LineStyleOption; | 
|     }; | 
|     blur?: { | 
|         label?: SeriesLabelOption; | 
|         edgeLabel?: SeriesLabelOption; | 
|         itemStyle?: ItemStyleOption; | 
|         lineStyle?: LineStyleOption; | 
|     }; | 
|     select?: { | 
|         label?: SeriesLabelOption; | 
|         edgeLabel?: SeriesLabelOption; | 
|         itemStyle?: ItemStyleOption; | 
|         lineStyle?: LineStyleOption; | 
|     }; | 
|     circular?: { | 
|         rotateLabel?: boolean; | 
|     }; | 
|     force?: { | 
|         initLayout?: 'circular' | 'none'; | 
|         repulsion?: number | number[]; | 
|         gravity?: number; | 
|         friction?: number; | 
|         edgeLength?: number | number[]; | 
|         layoutAnimation?: boolean; | 
|     }; | 
|     /** | 
|      * auto curveness for multiple edge, invalid when `lineStyle.curveness` is set | 
|      */ | 
|     autoCurveness?: boolean | number | number[]; | 
| } | 
| declare class GraphSeriesModel extends SeriesModel<GraphSeriesOption> { | 
|     static readonly type = "series.graph"; | 
|     readonly type = "series.graph"; | 
|     static readonly dependencies: string[]; | 
|     private _categoriesData; | 
|     private _categoriesModels; | 
|     /** | 
|      * Preserved points during layouting | 
|      */ | 
|     preservedPoints?: Dictionary<VectorArray>; | 
|     forceLayout?: ForceLayoutInstance; | 
|     hasSymbolVisual: boolean; | 
|     init(option: GraphSeriesOption): void; | 
|     mergeOption(option: GraphSeriesOption): void; | 
|     mergeDefaultAndTheme(option: GraphSeriesOption): void; | 
|     getInitialData(option: GraphSeriesOption, ecModel: GlobalModel): SeriesData; | 
|     getGraph(): Graph; | 
|     getEdgeData(): SeriesData<GraphSeriesModel, LineDataVisual>; | 
|     getCategoriesData(): SeriesData; | 
|     formatTooltip(dataIndex: number, multipleSeries: boolean, dataType: string): import("../../component/tooltip/tooltipMarkup").TooltipMarkupSection | import("../../component/tooltip/tooltipMarkup").TooltipMarkupNameValueBlock; | 
|     _updateCategoriesData(): void; | 
|     setZoom(zoom: number): void; | 
|     setCenter(center: number[]): void; | 
|     isAnimationEnabled(): boolean; | 
|     static defaultOption: GraphSeriesOption; | 
| } | 
| export default GraphSeriesModel; |