import type { IHooks } from '../../hooks/interface';
import { Graph as X6Graph } from '@antv/x6';
import type { IGraphConfig } from './config';
import { IGraphOptionProvider } from './config';
import { Syringe } from 'mana-syringe';
import { IGraphCommandService } from '../../command';
import { IModelService } from '../../model-service/interface';
import { IHookService } from '../../hooks';
/** !!! 所有需要使用Graph相关信息的地方, 都统一使用IGraphProvider来获取 */
export declare const IGraphProvider: unique symbol;
export interface IGraphProvider {
    /** 获取画布实例 */
    getGraphInstance: () => Promise<X6Graph>;
    /** 获取画布配置项 */
    getGraphOptions: () => Promise<IGraphConfig>;
}
export declare const ICommandServiceProvider: unique symbol;
export interface ICommandServiceProvider {
    getCommandService: () => Promise<IGraphCommandService>;
}
export declare const IModelServiceProvider: unique symbol;
export interface IModelServiceProvider {
    getModelService: () => Promise<IModelService>;
}
export interface IGraphManager {
    getGraph: (graphId: string) => Promise<X6Graph>;
}
export declare class GraphManager implements IGraphManager {
    /** 处理画布实例的销毁 */
    private toDispose;
    /** 储存画布实例 */
    private graphMap;
    /** 通过optionProvider 获取组件的 html dom element */
    optionProvider: IGraphOptionProvider;
    /** hooks */
    hookService: IHookService<IHooks>;
    /** hooks call 依赖的参数 */
    commandServiceProvider: ICommandServiceProvider;
    modelServiceProvider: IModelServiceProvider;
    /** 获取X6 Graph 实例 */
    getGraph: (graphId: string) => Promise<X6Graph>;
    private renderEdgeReactLabel;
    /** 实现在连线上渲染React节点 */
    private edgeAppendForeignObject;
    dispose(): void;
}
export declare const registerGraphModule: (register: Syringe.Register) => void;
