// Type definitions for pcb-stackup 4.0 // Project: https://github.com/tracespace/tracespace // Definitions by: Mike Cousins /// import { GerberSource, ConverterResult, CreateElement, Options as GerberOptions, } from 'gerber-to-svg' import { Stackup as CoreStackup, Layer as CoreLayer, Options as CoreOptions, } from 'pcb-stackup-core' import {GerberSide, GerberType} from 'whats-that-gerber' declare function pcbStackup( layers: Array, done: pcbStackup.Callback ): void declare function pcbStackup( layers: Array, options: pcbStackup.Options | null, done: pcbStackup.Callback ): void declare function pcbStackup( layers: Array, options?: pcbStackup.Options | null ): Promise> declare namespace pcbStackup { interface InputLayer { filename?: string gerber?: GerberSource options?: GerberOptions | string side?: GerberSide type?: GerberType converter?: ConverterResult externalId?: string | null } type OutputLayer = Layer & CoreLayer & { options: { id: string plotAsOutline: boolean | number createElement: CreateElement } } interface Stackup extends CoreStackup { layers: Array> outlineGapFill: number | null } type Options = Pick< CoreOptions, Exclude > & { id?: string outlineGapFill?: number } interface Callback { (error: Error, stackup: Stackup): unknown } } export = pcbStackup