import { CSVRecord, CSVRecordAssembler, CSVRecordAssemblerTransformerStreamOptions, Token } from '../../core/types'; import { FlexibleCSVArrayRecordAssembler } from '../models/FlexibleCSVArrayRecordAssembler'; import { FlexibleCSVObjectRecordAssembler } from '../models/FlexibleCSVObjectRecordAssembler'; /** * A transform stream that converts a stream of tokens into a stream of CSV records. * * For most use cases, prefer the factory function {@link createCSVRecordAssemblerTransformer}. * Use this class directly only when you need a custom assembler implementation. * * @category Low-level API * * @template Header The type of the header row. * @template Format The output format ('object' or 'array'). * @param assembler - A CSVRecordAssembler instance (required). Use {@link createCSVRecordAssembler} to create one. * @param options - Stream-specific options (backpressureCheckInterval, etc.) * @param writableStrategy - Strategy for the writable side (default: `{ highWaterMark: 1024, size: () => 1 }`) * @param readableStrategy - Strategy for the readable side (default: `{ highWaterMark: 256, size: () => 1 }`) * * @see {@link https://github.com/kamiazya/web-csv-toolbox/blob/main/docs/how-to-guides/choosing-the-right-api.md | Choosing the Right API} for guidance on selecting the appropriate API level. * * @example Custom assembler implementation * ```ts * import { CSVRecordAssemblerTransformer, type CSVObjectRecordAssembler, type Token } from 'web-csv-toolbox'; * * // Custom assembler for specialized record formats * class MyCustomAssembler implements CSVObjectRecordAssembler { * *assemble( * input?: Token | Iterable, * options?: { stream?: boolean } * ): IterableIterator> { * // Custom assembly logic * } * } * * const customAssembler = new MyCustomAssembler(); * tokenStream.pipeThrough(new CSVRecordAssemblerTransformer(customAssembler)); * ``` */ export declare class CSVRecordAssemblerTransformer
, Format extends "object" | "array" = "object"> extends TransformStream> { readonly assembler: CSVRecordAssembler | FlexibleCSVObjectRecordAssembler
| FlexibleCSVArrayRecordAssembler
; /** * Yields to the event loop to allow backpressure handling. * Can be overridden for testing purposes. * @internal */ protected yieldToEventLoop(): Promise; constructor(assembler: CSVRecordAssembler | FlexibleCSVObjectRecordAssembler
| FlexibleCSVArrayRecordAssembler
, options?: CSVRecordAssemblerTransformerStreamOptions, writableStrategy?: QueuingStrategy, readableStrategy?: QueuingStrategy>); }