/** * Math Utilities * Common mathematical operations and calculations */ import type { RangeMapping } from '@plyaz/types/api'; /** * Clamp a number between min and max values * * @param value - Value to clamp * @param min - Minimum value * @param max - Maximum value * @returns Clamped value * * @example * ```typescript * clamp(15, 0, 10); // Returns 10 * clamp(-5, 0, 10); // Returns 0 * clamp(5, 0, 10); // Returns 5 * ``` */ export declare function clamp(value: number, min: number, max: number): number; /** * Calculate percentage of value relative to max * * @param value - Current value * @param max - Maximum value * @returns Percentage (0-100) * * @example * ```typescript * percentage(25, 100); // Returns 25 * percentage(150, 100); // Returns 150 (can exceed 100) * ``` */ export declare function percentage(value: number, max: number): number; /** * Calculate percentage and clamp to 0-100 range * * @param value - Current value * @param max - Maximum value * @returns Percentage clamped to 0-100 */ export declare function clampedPercentage(value: number, max: number): number; /** * Round number to specified decimal places * * @param value - Number to round * @param decimals - Number of decimal places * @returns Rounded number * * @example * ```typescript * round(3.14159, 2); // Returns 3.14 * round(1.005, 2); // Returns 1.01 * ``` */ export declare function round(value: number, decimals?: 0): number; /** * Calculate average of array of numbers * * @param numbers - Array of numbers * @returns Average value * * @example * ```typescript * average([1, 2, 3, 4, 5]); // Returns 3 * average([]); // Returns 0 * ``` */ export declare function average(numbers: number[]): number; /** * Find median value in array of numbers * * @param numbers - Array of numbers * @returns Median value * * @example * ```typescript * median([1, 2, 3, 4, 5]); // Returns 3 * median([1, 2, 3, 4]); // Returns 2.5 * ``` */ export declare function median(numbers: number[]): number; /** * Calculate sum of array of numbers * * @param numbers - Array of numbers * @returns Sum of all numbers */ export declare function sum(numbers: number[]): number; /** * Find minimum value in array * * @param numbers - Array of numbers * @returns Minimum value or undefined if empty */ export declare function min(numbers: number[]): number | undefined; /** * Find maximum value in array * * @param numbers - Array of numbers * @returns Maximum value or undefined if empty */ export declare function max(numbers: number[]): number | undefined; /** * Linear interpolation between two values * * @param start - Start value * @param end - End value * @param progress - Progress (0-1) * @returns Interpolated value * * @example * ```typescript * lerp(0, 100, 0.5); // Returns 50 * lerp(10, 20, 0.25); // Returns 12.5 * ``` */ export declare function lerp(start: number, end: number, progress: number): number; /** * Inverse linear interpolation - find progress given start, end, and current value * * @param start - Start value * @param end - End value * @param value - Current value * @returns Progress (0-1) */ export declare function inverseLerp(start: number, end: number, value: number): number; /** * Map a value from one range to another * * @param value - Input value * @param mapping - Range mapping configuration * @returns Mapped value * * @example * ```typescript * mapRange(5, { input: { min: 0, max: 10 }, output: { min: 0, max: 100 } }); // Returns 50 * mapRange(2, { input: { min: 0, max: 4 }, output: { min: 10, max: 20 } }); // Returns 15 * ``` */ export declare function mapRange(value: number, mapping: RangeMapping): number; /** * Generate random number between min and max (inclusive) * * @param min - Minimum value * @param max - Maximum value * @returns Random number in range */ export declare function randomBetween(min: number, max: number): number; /** * Generate random integer between min and max (inclusive) * * @param min - Minimum integer * @param max - Maximum integer * @returns Random integer in range */ export declare function randomInt(min: number, max: number): number; /** * Check if number is within range (inclusive) * * @param value - Value to check * @param min - Minimum value * @param max - Maximum value * @returns True if value is in range */ export declare function inRange(value: number, min: number, max: number): boolean; //# sourceMappingURL=math.d.ts.map