import { ComputedRef, Ref } from 'vue'; import { Reactive } from '../common/common'; import { Configs } from '../common/configs'; import { Edges, Layouts, Nodes, Paths, UserLayouts } from '../common/types'; import { MarkerState } from './marker'; import * as EdgeModel from '../models/edge'; import * as NodeModel from '../models/node'; import * as PathModel from '../models/path'; export type { EdgeGroupStates } from '../models/edge'; interface States { nodeStates: NodeModel.NodeStates; edgeStates: EdgeModel.EdgeStates; edgeGroupStates: EdgeModel.EdgeGroupStates; summarizedEdgeStates: EdgeModel.SummarizedEdgeStates; pathStates: PathModel.PathStates; nodeZOrderedList: ComputedRef; edgeZOrderedList: ComputedRef; pathZOrderedList: ComputedRef; layouts: Layouts; } export type ReadonlyStates = Readonly; interface InputObjects { objects: Ref; selected: Reactive>; hovered: Reactive>; } export declare function makeStateInput(objects: Ref, selected: Reactive>, hovered: Reactive>): { objects: Ref; selected: Reactive>; hovered: Reactive>; }; export declare function provideStates(nodes: InputObjects, edges: InputObjects, paths: InputObjects, configs: Readonly, layouts: Reactive, readonlyLayouts: Readonly, makerState: MarkerState, scale: ComputedRef): States; export declare function isSummarizedEdges(item: EdgeModel.EdgeItem): item is EdgeModel.SummarizedEdgeItem; export declare function useStates(): ReadonlyStates;