// Type definitions for gerber-to-svg 4.0 // Project: https://github.com/tracespace/tracespace // Definitions by: Mike Cousins /// import {Parser, Options as ParserOptions} from 'gerber-parser' import {Plotter, Options as PlotterOptions} from 'gerber-plotter' declare function gerberToSvg( gerber: gerberToSvg.GerberSource, options?: | string | gerberToSvg.Options | gerberToSvg.Callback, done?: gerberToSvg.Callback ): gerberToSvg.Converter declare namespace gerberToSvg { function clone( converter: Converter ): ConverterResult function render( converter: ConverterResult, attributes: Record | string, createElement?: CreateElement, objectMode?: ObjectMode ): NodeType type GerberSource = string | Buffer | NodeJS.ReadableStream type ObjectMode = NodeType extends string ? NodeType extends Buffer ? false : true : true interface CreateElement { ( tag: string, attributes: Record, children: Array ): NodeType } interface Converter extends NodeJS.ReadableStream, ConverterResult { parser: Parser plotter: Plotter } interface ConverterResult { id: string attributes: Record defs: Array layer: Array viewBox: Array width: number height: number units: 'in' | 'mm' } interface Options extends ParserOptions, PlotterOptions { id?: string attributes?: Record createElement?: CreateElement objectMode?: ObjectMode } interface Callback { (error: Error, result: NodeType): unknown } } export = gerberToSvg