import type { ComputeAxisItem, DataAxisItem, ProtocolAxisItem, ResidualBucket } from './types.js'; export declare const DEFAULT_MIN_WEIGHT = 0.001; export interface AggregateOptions { /** Threshold below which contributions pool into the residual bucket. * Default 0.001 per spec §4.1. */ minWeight?: number; } export interface AggregationResult { /** Entries retained (weight >= minWeight), with canonical weight strings. */ retained: T[]; /** Residual bucket summarizing the pooled contributors, or null if none * were pooled. */ residual: ResidualBucket | null; /** Number of contributors that were pooled into the residual. */ pooledCount: number; } /** Apply the §4.1 threshold to a list of data-axis contributors. Returns * the retained entries plus a residual bucket (or null). Input entries * that are already ResidualBucket objects are preserved in `retained` * untouched. */ export declare function aggregateDataAxis(entries: DataAxisItem[], opts?: AggregateOptions): AggregationResult; /** Aggregate axis P entries by their optional `weight` field. Entries * without a weight are retained unconditionally (the §4.1 threshold only * applies when the issuer has chosen to emit per-module weights). */ export declare function aggregateProtocolAxis(entries: ProtocolAxisItem[], opts?: AggregateOptions): AggregationResult; /** Aggregate axis C entries by compute_share. Mirrors axis D. */ export declare function aggregateComputeAxis(entries: ComputeAxisItem[], opts?: AggregateOptions): AggregationResult; //# sourceMappingURL=residual.d.ts.map