/** * Safe Math Utilities * * Defensive arithmetic operations to prevent division by zero, * NaN propagation, and empty array exceptions. */ /** * Safe division with fallback value * @param numerator - The numerator * @param denominator - The denominator * @param fallback - Value to return if division would fail (default: 0) * @returns Result of division or fallback if denominator is 0, NaN, or undefined */ export declare function safeDivide(numerator: number, denominator: number, fallback?: number): number; /** * Safe reduce with empty array guard * @param arr - Array to reduce * @param reducer - Reducer function * @param initial - Initial value * @param emptyFallback - Value to return if array is empty (defaults to initial) */ export declare function safeReduce(arr: T[] | null | undefined, reducer: (acc: R, item: T, index: number) => R, initial: R, emptyFallback?: R): R; /** * Safe average calculation * @param values - Array of numbers * @param fallback - Value to return if array is empty or all values are invalid */ export declare function safeAverage(values: number[] | null | undefined, fallback?: number): number; /** * Safe toFixed that handles NaN/undefined * @param value - Number to format * @param decimals - Decimal places * @param fallback - Fallback string if value is invalid */ export declare function safeToFixed(value: number | null | undefined, decimals?: number, fallback?: string): string; /** * Safe percentile calculation * Returns fallback for empty or single-element arrays (where percentile is meaningless) * @param value - The value to find percentile for * @param arr - Array of values to calculate percentile against * @param fallback - Fallback percentile for edge cases (default: 50) */ export declare function safePercentile(value: number, arr: number[], fallback?: number): number; /** * Guard for operations that require non-empty arrays * @param arr - Array to check * @param context - Context description for error message * @returns Object with isEmpty flag and optional data */ export declare function guardEmptyArray(arr: T[] | null | undefined, context?: string): { isEmpty: true; message: string; } | { isEmpty: false; data: T[]; }; /** * Safe min/max finder that handles empty arrays * @param arr - Array of numbers * @param type - 'min' or 'max' * @param fallback - Fallback value if array is empty */ export declare function safeMinMax(arr: number[] | null | undefined, type: 'min' | 'max', fallback?: number): number; //# sourceMappingURL=safe-math.d.ts.map