/**
 * Aggregates multiple arrays of numbers using logical AND operation.
 * @remarks
 * This implementation is specifically designed for Array<Array<number>> type only,
 * despite the generic type parameter. It is currently used by the SCRIPT EXISTS command
 * which returns an array of 0s and 1s from each shard.
 * The generic type parameter T is provided for usage ergonomy, but the actual input structure
 * will be validated at runtime.
 */
export declare const aggregateLogicalAnd: <T>(replies: Array<unknown>) => T;
/**
 * Aggregates multiple arrays of numbers using logical OR operation.
 * @remarks
 * Mirror of `aggregateLogicalAnd` for the `agg_logical_or` response policy.
 * No command in the current metadata snapshot uses it, but the reducer is
 * registered in `RESPONSE_REDUCERS`, so it must be correct for the first
 * command a future metadata regeneration tags with it.
 */
export declare const aggregateLogicalOr: <T>(replies: Array<unknown>) => T;
/**
 * Aggregates shard replies by taking the minimum value.
 * @remarks
 * Scalar replies (e.g. WAIT, the minimal number of synchronized replicas) fold
 * to a single minimum; array replies (e.g. WAITAOF's `[numlocal, numreplicas]`)
 * fold element-wise, matching the server's AGG_MIN semantics. Input structure
 * is validated at runtime; the generic `T` is for call-site ergonomy only.
 */
export declare const aggregateMin: <T>(replies: Array<unknown>) => T;
/**
 * Aggregates shard replies by taking the maximum value.
 * @remarks
 * Mirrors {@link aggregateMin}: scalar replies fold to a single maximum, array
 * replies fold element-wise (AGG_MAX semantics). Input structure is validated
 * at runtime; the generic `T` is for call-site ergonomy only.
 */
export declare const aggregateMax: <T>(replies: Array<unknown>) => T;
/**
 * Aggregates multiple numbers by finding the sum of all values.
 * @remarks
 * This implementation is specifically designed for Array<number> type only,
 * despite the generic type parameter. The generic type parameter T is provided
 * for usage ergonomy, but the actual input structure will be validated at runtime.
 */
export declare const aggregateSum: <T>(replies: Array<unknown>) => T;
export declare const aggregateMerge: <T>(replies: Array<unknown>) => T;
//# sourceMappingURL=generic-aggregators.d.ts.map