import type { TransformGroupSpec, TransformLineage, TransformValue } from './transform.js'; export type NormalizeBasis = 'sum' | 'max' | 'extent' | 'first' | 'last'; export interface NormalizeContext { values: readonly number[]; data: readonly TDatum[]; indexes: readonly number[]; group: Readonly>; } export interface NormalizeOptions = TransformValue, TBy extends TransformGroupSpec | undefined = TransformGroupSpec | undefined, TAs extends string = string> { value: TValue; by?: TBy; as?: TAs; basis?: NormalizeBasis | ((context: NormalizeContext) => number); } export type NormalizeDatum = Omit> & TransformLineage & { readonly [TKey in TAs]: number; }; export declare function normalize, const TBy extends TransformGroupSpec | undefined = undefined, const TAs extends string = 'normalized'>(source: Iterable, options: NormalizeOptions): NormalizeDatum[];