///
import {Duplex, DuplexOptions} from 'node:stream';
import {Flushable, none} from 'stream-chain/defs.js';
import parser from './parser';
export = stringer;
/**
* Creates a flushable function that converts a token stream into JSON text.
*
* If `Parser` is `JSON.parse()`, then `Stringer` is `JSON.stringify()` for token streams.
*
* @param options - Stringer configuration.
* @returns A flushable function for use in a `chain()` pipeline.
*/
declare function stringer(options?: stringer.StringerOptions): Flushable;
declare namespace stringer {
/** Options for the Stringer. Extends Node.js `DuplexOptions`. */
export interface StringerOptions extends DuplexOptions {
/** Initial value for `useKeyValues`, `useStringValues`, and `useNumberValues`. */
useValues?: boolean;
/** Use packed `keyValue` tokens instead of streamed key chunks. Default: `false`. */
useKeyValues?: boolean;
/** Use packed `stringValue` tokens instead of streamed string chunks. Default: `false`. */
useStringValues?: boolean;
/** Use packed `numberValue` tokens instead of streamed number chunks. Default: `false`. */
useNumberValues?: boolean;
/** Wrap all incoming JSON values in an array. Default: `false`. */
makeArray?: boolean;
}
/** Creates a Stringer as a Duplex stream. */
export function asStream(options?: StringerOptions): Duplex;
/** Self-reference for destructuring: `const {stringer} = require('stream-json/stringer.js')`. */
export {stringer};
}