import { PathOrFileDescriptor } from 'fs';
import { ENCODING } from './common/constants.cjs';

type CsvJsonRow = Record<string, string | number | boolean | (string | number | boolean)[]>;
declare class ConvertCsvToJson {
    printValueFormatByType?: boolean;
    isSupportQuotedField?: boolean;
    delimiter?: string;
    isTrimHeaderFieldWhiteSpace?: boolean;
    _indexHeader?: number;
    parseSubArrayDelimiter?: string;
    parseSubArraySeparator?: string;
    encoding: ENCODING;
    formatValueByType(active?: boolean): this;
    supportQuotedField(active?: boolean): this;
    fieldDelimiter(delimiter: string): this;
    trimHeaderFieldWhiteSpace(active?: boolean): this;
    indexHeader(indexHeader: number): this;
    parseSubArray(delimiter?: string, separator?: string): this;
    customEncoding(encoding: ENCODING): this;
    utf8Encoding(): this;
    ucs2Encoding(): this;
    utf16leEncoding(): this;
    latin1Encoding(): this;
    asciiEncoding(): this;
    base64Encoding(): this;
    hexEncoding(): this;
    generateJsonFileFromCsv(fileInputName: PathOrFileDescriptor, fileOutputName: string): void;
    getJsonFromCsvStringified(fileInputName: PathOrFileDescriptor): string;
    getJsonFromCsv(fileInputName: PathOrFileDescriptor): CsvJsonRow[];
    csvStringToJson(csvString: string): CsvJsonRow[];
    csvToJson(parsedCsv: string): CsvJsonRow[];
    buildJsonResult(headers: string[], currentLine: string[]): CsvJsonRow;
    hasQuotes(line: string): boolean;
    split(line: string): string[];
    validateInputConfig(): void;
    /**
     * @deprecated Use generateJsonFileFromCsv()
     */
    jsonToCsv(inputFileName: PathOrFileDescriptor, outputFileName: string): void;
}
declare const _default: ConvertCsvToJson;

export { ConvertCsvToJson, type CsvJsonRow, _default as default };
