/// import { Readable, TransformOptions } from "stream"; import JSON2CSVParser = require("./JSON2CSVParser"); import JSON2CSVAsyncParser = require("./JSON2CSVAsyncParser"); import JSON2CSVTransform = require("./JSON2CSVTransform"); import flatten = require("./transforms/flatten"); import unwind = require("./transforms/unwind"); export as namespace json2csv; export { JSON2CSVAsyncParser as AsyncParser, JSON2CSVParser as Parser, JSON2CSVTransform as Transform }; // Convenience method to keep the API similar to version 3.X export function parse(data: Readonly | readonly T[], opts?: json2csv.Options): string; export function parseAsync( data: Readonly | readonly T[] | Readable, opts?: json2csv.Options, transformOpts?: TransformOptions, ): Promise; export const transforms: { flatten: typeof flatten; unwind: typeof unwind; }; export interface FieldValueCallbackInfo { label: string; default?: string | undefined; } export type FieldValueCallback = FieldValueCallbackWithoutField | FieldValueCallbackWithField; export interface FieldValueCallbackWithoutField { (row: T): any; } export interface FieldValueCallbackWithField { (row: T, field: FieldValueCallbackInfo): any; } export interface FieldInfo { label?: string | undefined; default?: string | undefined; value: string | FieldValueCallback; } export interface NormalizedFieldInfo { label: string; value: FieldValueCallback; } export interface Options { fields?: Array> | undefined; ndjson?: boolean | undefined; defaultValue?: string | undefined; quote?: string | undefined; escapedQuote?: string | undefined; delimiter?: string | undefined; eol?: string | undefined; excelStrings?: boolean | undefined; header?: boolean | undefined; includeEmptyRows?: boolean | undefined; withBOM?: boolean | undefined; transforms?: Array> | undefined; } export interface FlattenOptions { objects?: boolean | undefined; arrays?: boolean | undefined; separator?: string | undefined; } export type Json2CsvTransform = (item: T1) => T2 | T2[]; export interface UnwindOptions { paths?: string[] | undefined; blankOut?: boolean | undefined; }