import * as Inputs from "../inputs";
/**
 * Contains various CSV parsing and generation methods.
 */
export declare class CSVBitByBit {
    /**
     * Parses CSV text to a 2D array of strings (rows and columns).
     * Example: csv='a,b,c\n1,2,3' → [['a','b','c'], ['1','2','3']]
     * @param inputs CSV text and parsing options
     * @returns 2D array of strings
     * @group parse
     * @shortname parse to array
     * @drawable false
     */
    parseToArray(inputs: Inputs.CSV.ParseToArrayDto): string[][];
    /**
     * Parses CSV text to an array of JSON objects using headers.
     * Example: csv='name,age\nJohn,30\nJane,25', headerRow=0, dataStartRow=1
     * → [{'name':'John','age':'30'}, {'name':'Jane','age':'25'}]
     * @param inputs CSV text and parsing options
     * @returns Array of JSON objects
     * @group parse
     * @shortname parse to json
     * @drawable false
     */
    parseToJson<T = Record<string, string | number>>(inputs: Inputs.CSV.ParseToJsonDto): T[];
    /**
     * Parses CSV text to JSON using custom headers (ignores CSV headers if present).
     * Example: csv='John,30\nJane,25', headers=['name','age']
     * → [{'name':'John','age':'30'}, {'name':'Jane','age':'25'}]
     * @param inputs CSV text, custom headers, and parsing options
     * @returns Array of JSON objects
     * @group parse
     * @shortname parse to json with headers
     * @drawable false
     */
    parseToJsonWithHeaders<T = Record<string, string | number>>(inputs: Inputs.CSV.ParseToJsonWithHeadersDto): T[];
    /**
     * Queries CSV data by column/header name and returns all values in that column.
     * Example: csv='name,age\nJohn,30\nJane,25', column='name' → ['John', 'Jane']
     * @param inputs CSV text, column name, and parsing options
     * @returns Array of values from the specified column
     * @group query
     * @shortname query column
     * @drawable false
     */
    queryColumn<T = Record<string, string | number>>(inputs: Inputs.CSV.QueryColumnDto): (string | number)[];
    /**
     * Queries CSV data and filters rows where a column matches a value.
     * Example: csv='name,age\nJohn,30\nJane,25', column='age', value='30' → [{'name':'John','age':'30'}]
     * @param inputs CSV text, column name, value, and parsing options
     * @returns Array of matching rows as JSON objects
     * @group query
     * @shortname query rows by value
     * @drawable false
     */
    queryRowsByValue<T = Record<string, string | number>>(inputs: Inputs.CSV.QueryRowsByValueDto): T[];
    /**
     * Converts a 2D array to CSV text.
     * Example: array=[['name','age'], ['John','30']] → 'name,age\nJohn,30'
     * @param inputs 2D array and formatting options
     * @returns CSV text
     * @group generate
     * @shortname array to csv
     * @drawable false
     */
    arrayToCsv(inputs: Inputs.CSV.ArrayToCsvDto): string;
    /**
     * Converts an array of JSON objects to CSV text.
     * Example: json=[{'name':'John','age':'30'}], headers=['name','age'] → 'name,age\nJohn,30'
     * @param inputs JSON array, headers, and formatting options
     * @returns CSV text
     * @group generate
     * @shortname json to csv
     * @drawable false
     */
    jsonToCsv<T = Record<string, unknown>>(inputs: Inputs.CSV.JsonToCsvDto<T>): string;
    /**
     * Converts an array of JSON objects to CSV text using object keys as headers.
     * Example: json=[{'name':'John','age':'30'}] → 'name,age\nJohn,30'
     * @param inputs JSON array and formatting options
     * @returns CSV text
     * @group generate
     * @shortname json to csv auto
     * @drawable false
     */
    jsonToCsvAuto<T = Record<string, unknown>>(inputs: Inputs.CSV.JsonToCsvAutoDto<T>): string;
    /**
     * Gets the headers from a CSV file.
     * Example: csv='name,age\nJohn,30', headerRow=0 → ['name', 'age']
     * @param inputs CSV text and options
     * @returns Array of header names
     * @group query
     * @shortname get headers
     * @drawable false
     */
    getHeaders(inputs: Inputs.CSV.GetHeadersDto): string[];
    /**
     * Gets the number of rows in a CSV file (excluding headers if specified).
     * Example: csv='name,age\nJohn,30\nJane,25', headerRow=0 → 2
     * @param inputs CSV text and options
     * @returns Number of data rows
     * @group query
     * @shortname row count
     * @drawable false
     */
    getRowCount(inputs: Inputs.CSV.GetRowCountDto): number;
    /**
     * Gets the number of columns in a CSV file.
     * Example: csv='name,age,city\nJohn,30,NYC' → 3
     * @param inputs CSV text and options
     * @returns Number of columns
     * @group query
     * @shortname column count
     * @drawable false
     */
    getColumnCount(inputs: Inputs.CSV.ParseToArrayDto): number;
    private parseCsvLine;
    private escapeCsvCell;
    /**
     * Converts literal escape sequence strings to their actual characters.
     * For example, converts "\\n" (two characters) to "\n" (newline character).
     */
    private convertEscapeSequences;
}
