import type { TransformGroupRow, TransformGroupSpec, TransformLineage, TransformOrderOptions, TransformValue } from './transform.js'; export type WaterfallKind = 'increase' | 'decrease' | 'total'; export interface WaterfallOptions extends TransformOrderOptions { value: TransformValue; by?: TransformGroupSpec; /** Appends a zero-based net-total row to each nonempty group. */ total?: boolean; } type WaterfallDerivedField = keyof TransformLineage | 'delta' | 'start' | 'end' | 'kind'; export type WaterfallStepDatum = Omit & TransformLineage & { readonly delta: number; readonly start: number; readonly end: number; readonly kind: 'increase' | 'decrease'; }; export type WaterfallTotalDatum | undefined = undefined> = TransformGroupRow & TransformLineage & { readonly delta: number; readonly start: 0; readonly end: number; readonly kind: 'total'; }; export type WaterfallDatum | undefined = undefined> = WaterfallStepDatum | WaterfallTotalDatum; /** Materializes signed contributions as cumulative intervals. */ export declare function waterfall(source: Iterable, options: Omit, 'by'> & { by?: undefined; }): WaterfallDatum[]; export declare function waterfall>(source: Iterable, options: Omit, 'by'> & { by: TBy; }): WaterfallDatum[]; export declare function waterfall(source: Iterable, options: WaterfallOptions): WaterfallDatum | undefined>[]; export {};