import type { AttributionPrimitive } from '../attribution-primitive/types.js';
import type { SettlementContributor, SettlementPeriod, SettlementRecord, SettlementResidualBucket } from './types.js';
/** Canonical per-contributor leaf hash — hex sha256 of the canonical
 *  body (contributor_did, total_weight, contribution_count). Exposed so
 *  contributor-query verifiers recompute the same bytes. */
export declare function contributorLeafHashHex(c: SettlementContributor): string;
/** Residual-bucket leaf hash for the per-axis tree. Canonicalizes the
 *  full bucket object. */
export declare function residualLeafHashHex(r: SettlementResidualBucket): string;
/** 6-digit decimal form for settlement weights. Unlike Build A's
 *  `toWeightString`, settlement weights can exceed 1.0 (they accumulate
 *  over many actions); the 6-digit precision is preserved. Rejects
 *  non-finite or negative values. */
export declare function formatSettlementWeight(v: number): string;
export interface AggregateOptions {
    /** Gateway DID that will sign the settlement record. */
    gateway_did: string;
    /** Override issued_at (tests, replayed audits). Must be canonical. */
    issued_at?: string;
    /** When false, throws on any receipt whose timestamp is outside
     *  [t0, t1). Default is true — out-of-period receipts are silently
     *  dropped so a caller can hand us an uncurated batch. */
    skipOutOfPeriod?: boolean;
}
/** Compute the unsigned settlement record for `receipts` over `period`.
 *  Half-open interval [t0, t1) — receipts at exactly t1 are excluded.
 *  Returns the record minus its `signature` field; callers pass the
 *  result to `signSettlementRecord` to produce the signed record. */
export declare function aggregateAttributionPrimitives(receipts: AttributionPrimitive[], period: SettlementPeriod, options: AggregateOptions): Omit<SettlementRecord, 'signature'>;
//# sourceMappingURL=aggregate.d.ts.map