import { AnyObject, CommonLogger } from '@naturalcycles/js-lib'; import { TransformOptions, TransformTyped } from '../stream.model'; export interface TransformLogProgressOptions extends TransformOptions { /** * Progress metric * * @default `progress` */ metric?: string; /** * Include `heapUsed` in log. * * @default false */ heapUsed?: boolean; /** * Include `heapTotal` in log. * * @default false */ heapTotal?: boolean; /** * Include `rss` in log. * * @default true */ rss?: boolean; /** * Incude Peak RSS in log. * * @default true */ peakRSS?: boolean; /** * Include `external` in log. * * @default false */ external?: boolean; /** * Include `arrayBuffers` in log. * * @default false */ arrayBuffers?: boolean; /** * Log (rss - heapTotal) * For convenience of debugging "out-of-heap" memory size. * * @default false */ rssMinusHeap?: boolean; /** * Log "rows per second" * * @default true */ logRPS?: boolean; /** * Set to false to disable logging progress * * @default true */ logProgress?: boolean; /** * Log progress event Nth record that is _processed_ (went through mapper). * Set to 0 to disable logging. * * @default 1000 */ logEvery?: number; logger?: CommonLogger; /** * Function to return extra properties to the "progress object". * * chunk is undefined for "final" stats, otherwise is defined. */ extra?: (chunk: IN | undefined, index: number) => AnyObject; /** * If specified - will multiply the counter by this number. * Useful e.g when using `transformBuffer({ batchSize: 500 })`, so * it'll accurately represent the number of processed entries (not batches). * * Defaults to 1. */ batchSize?: number; /** * Experimental logging of item (shunk) sizes, when json-stringified. * * Defaults to false. * * @experimental */ logSizes?: boolean; /** * How many last item sizes to keep in a buffer, to calculate stats (p50, p90, avg, etc). * Defaults to 100_000. * Cannot be Infinity. */ logSizesBuffer?: number; /** * Works in addition to `logSizes`. Adds "zipped sizes". * * @experimental */ logZippedSizes?: boolean; } /** * Pass-through transform that optionally logs progress. */ export declare function transformLogProgress(opt?: TransformLogProgressOptions): TransformTyped;