import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from '../../../core/constants'; import { ColumnCountStrategy, StringArrayCSVParser, StringCSVParserFactoryOptions, StringObjectCSVParser } from '../../../core/types'; /** * Factory function to create the appropriate String CSV parser based on options. * * @template Header - The type of the header row * @param options - Parser options including CSV processing specification and engine * @returns A parser instance configured for the specified output format * * @remarks * This function provides both compile-time and runtime type safety. * The return type is determined by the outputFormat option: * - `outputFormat: 'object'` (default) → StringObjectCSVParser (FlexibleStringObjectCSVParser) * - `outputFormat: 'array'` → StringArrayCSVParser (FlexibleStringArrayCSVParser) * * **Design Intent**: This factory function accepts options including engine configuration * to enable future execution path optimization. The function may select the optimal internal * parser implementation based on the provided options. Currently, this optimization * is not implemented, but the API is designed to support it without breaking changes. * * @example Object format (default) * ```ts * const parser = createStringCSVParser({ * header: ['name', 'age'], * delimiter: ',', * signal: abortController.signal, * }); * for (const record of parser.parse('Alice,30\nBob,25')) { * console.log(record); // { name: 'Alice', age: '30' } * } * ``` * * @example Array format * ```ts * const parser = createStringCSVParser({ * header: ['name', 'age'], * outputFormat: 'array', * }); * for (const record of parser.parse('Alice,30\nBob,25')) { * console.log(record); // ['Alice', '30'] * } * ``` */ export declare function createStringCSVParser = readonly string[], const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Strategy extends ColumnCountStrategy = ColumnCountStrategy>(options: StringCSVParserFactoryOptions & { outputFormat: "array"; }): StringArrayCSVParser
; export declare function createStringCSVParser = readonly string[], const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Strategy extends ColumnCountStrategy = ColumnCountStrategy>(options: StringCSVParserFactoryOptions & { outputFormat: "object"; }): StringObjectCSVParser
; export declare function createStringCSVParser = readonly string[], const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Strategy extends ColumnCountStrategy = ColumnCountStrategy>(options?: Omit, "outputFormat">): StringObjectCSVParser
; export declare function createStringCSVParser = readonly string[], const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const OutputFormat extends "object" | "array" = "object" | "array", const Strategy extends ColumnCountStrategy = ColumnCountStrategy>(options: StringCSVParserFactoryOptions): StringArrayCSVParser
| StringObjectCSVParser
;