/// import {Duplex, DuplexOptions} from 'node:stream'; import parser from './parser'; export = disassembler; /** * Creates a disassembler that converts JavaScript objects into a token stream. * * The inverse of the parser: takes JS values and produces `{name, value}` tokens * following the same protocol. Supports `JSON.stringify()`-compatible `replacer` and `toJSON()`. * * @param options - Packing, streaming, and replacer options. * @returns A function that takes a value and yields tokens via a generator. */ declare function disassembler(options?: disassembler.DisassemblerOptions): (value: unknown) => Generator; declare namespace disassembler { /** Options for the disassembler. Extends Node.js `DuplexOptions`. */ export interface DisassemblerOptions extends DuplexOptions { /** Initial value for `packKeys`, `packStrings`, and `packNumbers`. */ packValues?: boolean; /** Emit `keyValue` tokens. Default: `true`. */ packKeys?: boolean; /** Emit `stringValue` tokens. Default: `true`. */ packStrings?: boolean; /** Emit `numberValue` tokens. Default: `true`. */ packNumbers?: boolean; /** Initial value for `streamKeys`, `streamStrings`, and `streamNumbers`. */ streamValues?: boolean; /** Emit `startKey`/`endKey`/`stringChunk` tokens. Default: `true`. */ streamKeys?: boolean; /** Emit `startString`/`endString`/`stringChunk` tokens. Default: `true`. */ streamStrings?: boolean; /** Emit `startNumber`/`endNumber`/`numberChunk` tokens. Default: `true`. */ streamNumbers?: boolean; /** * A replacer function or property whitelist array, matching `JSON.stringify()` semantics. */ replacer?: ((key: string, value: any) => any) | string[]; } /** Creates a disassembler wrapped as a Duplex stream (object mode on both sides). */ export function asStream(options?: DisassemblerOptions): Duplex; /** Self-reference for destructuring: `const {disassembler} = require('stream-json/disassembler.js')`. */ export {disassembler}; }