import type { CsvToJsonOptions, JsonToCsvOptions, SaveAsCsvOptions } from './index'; export interface JtcsvWithPluginsOptions { enableFastPath?: boolean; enablePlugins?: boolean; [key: string]: any; } export interface PluginHookContext { operation: string; options?: any; metadata?: Record; } export class JtcsvWithPlugins { constructor(options?: JtcsvWithPluginsOptions); csvToJson(csv: string, options?: CsvToJsonOptions): Promise; csvToJsonIterator(csv: string, options?: CsvToJsonOptions): AsyncGenerator; jsonToCsv(json: any[], options?: JsonToCsvOptions): Promise; saveAsCsv(data: any[], filePath: string, options?: SaveAsCsvOptions): Promise; readCsvAsJson(filePath: string, options?: CsvToJsonOptions): Promise; parseNdjson(input: string | ReadableStream, options?: any): Promise; toNdjson(data: any[], options?: any): string; fromNdjson(input: string, options?: any): any[]; use(name: string, plugin: any): void; getStats(): any; configure(newOptions: JtcsvWithPluginsOptions): this; static create(options?: JtcsvWithPluginsOptions): JtcsvWithPlugins; } export class PluginManager {} export class FastPathEngine {} export class NdjsonParser {} export const create: typeof JtcsvWithPlugins.create; export default JtcsvWithPlugins;