import { Transform } from 'stream';
import { buffered as bufferedCore } from '@iwsio/json-csv-core';
import type { NodeExportOptions } from './exporter.cjs';
import { StringWriter } from './string-writer.cjs';
export { StringWriter } from './string-writer.cjs';
type StreamCallback = (err?: Error | null, result?: Transform) => void;
type BufferedCallback = (err?: Error | null, result?: string) => void;
/**
 * Generate a CSV transform for a stream of objects.
 * @param options Export options
 * @param callback Optional callback for classic style Node. If null or undefined, returns a promise
 * @returns If callback provided, return void; otherwise, returns Transform stream
 */
export declare const stream: (options: Partial<NodeExportOptions>, callback?: StreamCallback) => Transform | void;
/**
 * Generate a CSV transform for a stream of objects.
 * @param options Export options
 * @param callback Optional callback for classic style Node. If null or undefined, returns a promise
 * @returns If callback provided, return void; otherwise, returns Transform stream
 */
export declare const toCsvStream: (options: Partial<NodeExportOptions>, callback?: StreamCallback) => Transform | void;
/**
 * Convert array of objects to CSV in a synchronous operation
 * @param data Array of objects to be transformed
 * @param options CSV Options
 * @returns The result CSV string
 */
export declare const bufferedSync: typeof bufferedCore;
/**
 * Convert array of objects to CSV in a synchronous operation
 * @param data Array of objects to be transformed
 * @param options CSV Options
 * @returns The result CSV string
 */
export declare const toCsvSync: typeof bufferedCore;
/**
 * Convert array of objects to CSV
 * @param data Array of objects to be transformed
 * @param options CSV Options
 * @param callback (optional): If provided, calls back with the result error or CSV string
 * @returns If callback provided, returns void; otherwise, returns a promise of the result CSV string
 */
export declare const buffered: (data: Record<string, any>[], options: Partial<NodeExportOptions>, callback?: BufferedCallback) => Promise<string> | void;
/**
 * Convert array of objects to CSV
 * @param data Array of objects to be transformed
 * @param options CSV Options
 * @param callback (optional): If provided, calls back with the result error or CSV string
 * @returns If callback provided, returns void; otherwise, returns a promise of the result CSV string
 */
export declare const toCsv: (data: Record<string, any>[], options: Partial<NodeExportOptions>, callback?: BufferedCallback) => Promise<string> | void;
/**
 * @deprecated Please use stream or toCsvStream
 */
export declare const csv: (options: Partial<NodeExportOptions>, callback?: StreamCallback) => Transform | void;
/**
 * @deprecated Please use buffered or toCsv
 */
export declare const csvBuffered: (data: Record<string, any>[], options: Partial<NodeExportOptions>, callback?: BufferedCallback) => Promise<string> | void;
declare const _default: {
    buffered: (data: Record<string, any>[], options: Partial<NodeExportOptions>, callback?: BufferedCallback) => Promise<string> | void;
    bufferedSync: typeof bufferedCore;
    stream: (options: Partial<NodeExportOptions>, callback?: StreamCallback) => Transform | void;
    toCsv: (data: Record<string, any>[], options: Partial<NodeExportOptions>, callback?: BufferedCallback) => Promise<string> | void;
    toCsvSync: typeof bufferedCore;
    toCsvStream: (options: Partial<NodeExportOptions>, callback?: StreamCallback) => Transform | void;
    StringWriter: typeof StringWriter;
    csv: (options: Partial<NodeExportOptions>, callback?: StreamCallback) => Transform | void;
    csvBuffered: (data: Record<string, any>[], options: Partial<NodeExportOptions>, callback?: BufferedCallback) => Promise<string> | void;
};
export default _default;
