import { NumericalValues, PlainObject } from "./models.mjs"; import { max } from "./internal/math/aggregate.mjs"; //#region src/math.d.ts /** * Get the average value from a list of items * * @param items List of items * @param callback Callback to get an item's value * @returns Average value, or `Number.NaN` if no average can be calculated */ declare function average(items: Item[], callback: (item: Item, index: number, array: Item[]) => number): number; /** * Get the average value from a list of items * * @param items List of items * @param key Key to use for value * @returns Average value, or `Number.NaN` if no average can be calculated */ declare function average(items: Item[], key: keyof NumericalValues): number; /** * Get the average value from a list of numbers * * @param numbers List of numbers * @returns Average value, or `Number.NaN` if no average can be calculated */ declare function average(numbers: number[]): number; /** * Round a number up * * @param value Number to round up * @param decimals Number of decimal places to round to _(defaults to `0`)_ * @returns Rounded number, or `Number.NaN` if the value if unable to be rounded */ declare function ceil(value: number, decimals?: number): number; /** * Count the number of items in an array that match a specific value * * @param array Array to count for * @param callback Callback to get an item's value * @param value Value to match and count * @returns Number of items that match the condition, or `Number.NaN` if no count can be calculated */ declare function count(array: Item[], callback: (item: Item, index: number, array: Item[]) => unknown, value: unknown): number; /** * Count the number of items in an array that have a specific value * * @param array Array to count for * @param key Key to use for value * @param value Value to match and count * @returns Number of items with the specified key value, or `Number.NaN` if no count can be calculated */ declare function count(array: Item[], key: ItemKey, value: Item[ItemKey]): number; /** * Count the number of items in an array * * @param values Array to count for * @returns Number of items, or `Number.NaN` if no count can be calculated */ declare function count(values: unknown[]): number; /** * Round a number down * * @param value Number to round down * @param decimals Number of decimal places to round to _(defaults to `0`)_ * @returns Rounded number, or `Number.NaN` if the value if unable to be rounded */ declare function floor(value: number, decimals?: number): number; /** * Get the median value from a list of items * * @param array List of items * @param callback Callback to get an item's value * @returns Median value, or `Number.NaN` if no median can be calculated */ declare function median(array: Item[], callback: (item: Item, index: number, array: Item[]) => number): number; /** * Get the median value from a list of items * * @param array List of items * @param key Key to use for value * @returns Median value, or `Number.NaN` if no median can be calculated */ declare function median(array: Item[], key: keyof NumericalValues): number; /** * Get the median value from a list of numbers * * @param array List of numbers * @returns Median value, or `Number.NaN` if no median can be calculated */ declare function median(array: number[]): number; /** * Get the minimum value from a list of items * * @param items List of items * @param callback Callback to get an item's value * @returns Minimum value, or `Number.NaN` if no minimum can be found */ declare function min(items: Item[], callback: (item: Item, index: number, array: Item[]) => number): number; /** * Get the minimum value from a list of items * * @param items List of items * @param key Key to use for value * @returns Minimum value, or `Number.NaN` if no minimum can be found */ declare function min(items: Item[], key: keyof NumericalValues): number; /** * Get the minimum value from a list of numbers * * @param values List of numbers * @returns Minimum value, or `Number.NaN` if no minimum can be found */ declare function min(values: number[]): number; /** * Round a number * * @param value Number to round * @param decimals Number of decimal places to round to _(defaults to `0`)_ * @returns Rounded number, or `Number.NaN` if the value if unable to be rounded */ declare function round(value: number, decimals?: number): number; /** * Get the sum of a list of items * * @param items List of items * @param callback Callback to get an item's value * @returns Sum of the values, or `Number.NaN` if no sum can be calculated */ declare function sum(items: Item[], callback: (item: Item, index: number, array: Item[]) => number): number; /** * Get the sum of a list of items * * @param items List of items * @param key Key to use for value * @returns Sum of the values, or `Number.NaN` if no sum can be calculated */ declare function sum(items: Item[], key: keyof NumericalValues): number; /** * Get the sum of a list of numbers * * @param values List of numbers * @returns Sum of the numbers, or `Number.NaN` if no sum can be calculated */ declare function sum(values: number[]): number; //#endregion export { average, ceil, count, floor, max, median, min, round, sum };