import { ColumnCountStrategy, CSVRecordAssemblerFactoryOptions } from '../../../core/types'; import { FlexibleCSVArrayRecordAssembler } from '../../models/FlexibleCSVArrayRecordAssembler'; import { FlexibleCSVObjectRecordAssembler } from '../../models/FlexibleCSVObjectRecordAssembler'; /** * Factory function to create the appropriate CSV record assembler based on options. * * @param options - Assembler options including outputFormat and engine * @returns An assembler instance configured for the specified output format * * @remarks * This function accepts {@link CSVRecordAssemblerFactoryOptions} for flexibility, * but runtime validation ensures type safety. For compile-time type safety, * use {@link CSVRecordAssemblerOptions} type directly. * * **Design Intent**: This factory function accepts options including engine configuration * to enable future execution path optimization. The function may select the optimal internal * assembler implementation based on the provided options. Currently, this optimization * is not implemented, but the API is designed to support it without breaking changes. * * @example * ```ts * // Create an object record assembler * const objectAssembler = createCSVRecordAssembler({ * header: ['name', 'age'], * outputFormat: 'object' * }); * * // Create an array record assembler * const arrayAssembler = createCSVRecordAssembler({ * header: ['name', 'age'], * outputFormat: 'array' * }); * ``` */ export declare function createCSVRecordAssembler, const Strategy extends ColumnCountStrategy = ColumnCountStrategy>(options: CSVRecordAssemblerFactoryOptions & { outputFormat: "array"; }): FlexibleCSVArrayRecordAssembler
; export declare function createCSVRecordAssembler, const Strategy extends ColumnCountStrategy = ColumnCountStrategy>(options: CSVRecordAssemblerFactoryOptions & { outputFormat: "object"; }): FlexibleCSVObjectRecordAssembler
; export declare function createCSVRecordAssembler, const Strategy extends ColumnCountStrategy = ColumnCountStrategy>(options?: Omit, "outputFormat">): FlexibleCSVObjectRecordAssembler
; export declare function createCSVRecordAssembler, const OutputFormat extends "object" | "array" = "object" | "array", const Strategy extends ColumnCountStrategy = ColumnCountStrategy>(options: CSVRecordAssemblerFactoryOptions): FlexibleCSVArrayRecordAssembler
| FlexibleCSVObjectRecordAssembler
;