/** * Type definitions for railroad-diagrams * Project: https://github.com/tabatkins/railroad-diagrams */ declare module 'railroad-diagrams' { export class Diagram { constructor(children: DiagramNode[]); toSVG(): SVGElement; toString(): string; } export class ComplexDiagram extends Diagram {} export class Sequence { constructor(children: DiagramNode[]); } export class Choice { constructor(defaultIndex: number, children: DiagramNode[]); } export class Optional { constructor(child: DiagramNode, skip?: 'skip'); } export class OneOrMore { constructor(child: DiagramNode, repeat?: DiagramNode); } export class ZeroOrMore { constructor(child: DiagramNode, repeat?: DiagramNode, skip?: 'skip'); } export class Terminal { constructor(text: string); } export class NonTerminal { constructor(text: string); } export class Comment { constructor(text: string); } export class Skip {} export type DiagramNode = | Sequence | Choice | Optional | OneOrMore | ZeroOrMore | Terminal | NonTerminal | Comment | Skip; }