import * as builder from "xmlbuilder"; import { IArgdownPlugin, IRequestHandler } from "../IArgdownPlugin.js"; import { IMapNode, IGroupMapNode, IMapEdge } from "../model/model.js"; import { IArgdownRequest } from "../index.js"; export interface IGraphMLSettings { argument?: { width?: number; horizontalPadding?: number; verticalPadding?: number; text?: { font?: string; fontSize?: number; bold?: boolean; lineHeight?: number; }; title?: { font?: string; fontSize?: number; bold?: boolean; lineHeight?: number; }; }; statement?: { width?: number; horizontalPadding?: number; verticalPadding?: number; text?: { font?: string; fontSize?: number; bold?: boolean; lineHeight?: number; }; title?: { font?: string; fontSize?: number; bold?: boolean; lineHeight?: number; }; }; edge?: { width?: number; }; group?: { font?: string; fontSize?: number; bold?: boolean; lineHeight?: number; horizontalPadding?: number; verticalPadding?: number; }; } declare module "../index.js" { interface IArgdownRequest { graphml?: IGraphMLSettings; } interface IArgdownResponse { graphml?: string; groupCount?: number; } } export declare class GraphMLExportPlugin implements IArgdownPlugin { name: string; defaults: IGraphMLSettings; constructor(config?: IGraphMLSettings); getSettings(request: IArgdownRequest): IGraphMLSettings; prepare: IRequestHandler; run: IRequestHandler; createGraphMLDocument(): builder.XMLElement; createEdgeElement(graph: builder.XMLElement, edge: IMapEdge, settings: IGraphMLSettings): builder.XMLElement; createGroupElement(parent: builder.XMLElement, groupMapNode: IGroupMapNode, settings: IGraphMLSettings): builder.XMLElement; createNodeElement(parent: builder.XMLElement, mapNode: IMapNode, settings: IGraphMLSettings): builder.XMLElement; }