Tipos públicos
Importa desde la raíz para conservar los contratos entre dependencias:
import { JSD, SerialStatus } from '@danidoble/serial-node-jsd';
import type {
JSDConfig, JSDOptions, JSDTransport, JSDParser, JSDParserFactory, JSDHandshake,
PortFilter, SerialPortInfo, SendOptions,
SerialConfig, SerialCoreEvents, SerialPortOpenOptions, DelimiterOptions,
JSDEvents, VisionEvents, LicensingEvents, ManifestEvents, MdbCardHolderEvents
} from '@danidoble/serial-node-jsd';
type MachineStatusPayload = JSDEvents['vision:machine-status'][0];
type StatusListener = (...args: JSDEvents['vision:machine-status']) => void;Contratos entre dependencias
JSDConfig = SerialConfig procede directamente de serial-core. JSDParser, JSDParserFactory y JSDHandshake se derivan de esa configuración. PortFilter, SerialPortInfo y SendOptions conservan los contratos de descubrimiento y envío de serial-core 0.3.0. SendOptions describe envíos de serial-core; JSD no expone un método de envío crudo. SerialPortOpenOptions y DelimiterOptions proceden de serialport. Reexportar un tipo de puerto no significa que JSD acepte todas sus opciones: el constructor recibe SerialConfig.
SerialCoreEvents usa firmas de callbacks. Los mapas JSD usan tuplas de argumentos. SerialStatus se exporta como constante; su unión de valores es:
type StatusValue = (typeof SerialStatus)[keyof typeof SerialStatus];Tipos de dominio y espacios de nombres
La raíz exporta opciones JSD, tipos de máquinas y rangos, eventos de licencias, tipos de manifiestos y MDB, y opciones seleccionadas de Vision. JsdTypes, TransportTypes, VisionTypes, visionTypes, LicensingTypes, ManifestTypes y MdbCardHolderTypes permiten acceder a sus respectivos módulos de tipos. Prefiere VisionTypes por consistencia.
La referencia de tipos incluye auxiliares internos como contexto; no todos son exportaciones nombradas de la raíz. Evita importar rutas privadas del código fuente desde el paquete instalado.
ESM y CommonJS
ESM resuelve a index.mjs/index.d.mts; CommonJS a index.cjs/index.d.cts. Tu IDE resuelve las declaraciones correspondientes automáticamente. Elige resolución TypeScript node16, nodenext o bundler según tu aplicación.