/**
 * E-Series constants and operations
 */
/**
 * An enumeration of possible E-Series identifiers.
 */
export declare enum ESeries {
    E3 = 3,
    E6 = 6,
    E12 = 12,
    E24 = 24,
    E48 = 48,
    E96 = 96,
    E192 = 192
}
/**
 * Returns the base values for the given E-series.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @returns An array of base values for the series
 * @throws Error if the series doesn't exist
 */
export declare function series(seriesKey: ESeries): number[];
/**
 * Returns the available series keys.
 *
 * @returns An array containing the series-keys (ESeries enum values)
 */
export declare function seriesKeys(): ESeries[];
/**
 * Get an ESeries from its name.
 *
 * @param name - The series name as a string, for example 'E24'
 * @returns An ESeries enum value
 * @throws Error if the series doesn't exist
 */
export declare function seriesKeyFromName(name: string): ESeries;
/**
 * Returns the nominal tolerance of an E Series.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @returns A float between zero and one. For example 0.1 indicates a 10% tolerance
 * @throws Error for an unknown E-Series
 */
export declare function tolerance(seriesKey: ESeries): number;
/**
 * Round a number to a specific number of significant figures.
 *
 * @param x - The number to round
 * @param figures - The number of significant figures
 * @returns The rounded number
 */
export declare function roundSig(x: number, figures?: number): number;
/**
 * Generate E values in a range inclusive of the start and stop values.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param start - The beginning of the range
 * @param stop - The end of the range
 * @returns Array of values from the specified range
 * @throws Error if parameters are invalid
 */
export declare function erange(seriesKey: ESeries, start: number, stop: number): number[];
/**
 * Generate E values in a half-open range inclusive of start, but exclusive of stop.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param start - The beginning of the range
 * @param stop - The end of the range (exclusive)
 * @returns Array of values from the specified range
 * @throws Error if parameters are invalid
 */
export declare function openErange(seriesKey: ESeries, start: number, stop: number): number[];
/**
 * Find the nearest values to a target value.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param value - The query value
 * @param num - The number of nearby values to find: 1, 2 or 3
 * @returns An array containing num values
 * @throws Error if parameters are invalid
 */
export declare function findNearestFew(seriesKey: ESeries, value: number, num?: number): number[];
/**
 * Find the nearest value to a target value.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param value - The query value
 * @returns The value in the specified E-series closest to value
 * @throws Error if parameters are invalid
 */
export declare function findNearest(seriesKey: ESeries, value: number): number;
/**
 * Find the smallest value greater-than or equal-to the given value.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param value - The query value
 * @returns The smallest value greater-than or equal-to the query value
 * @throws Error if parameters are invalid
 */
export declare function findGreaterThanOrEqual(seriesKey: ESeries, value: number): number;
/**
 * Find the smallest value greater-than the given value.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param value - The query value
 * @returns The smallest value greater-than the query value
 * @throws Error if parameters are invalid
 */
export declare function findGreaterThan(seriesKey: ESeries, value: number): number;
/**
 * Find the largest value less-than or equal-to the given value.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param value - The query value
 * @returns The largest value less-than or equal-to the query value
 * @throws Error if parameters are invalid
 */
export declare function findLessThanOrEqual(seriesKey: ESeries, value: number): number;
/**
 * Find the largest value less-than the given value.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param value - The query value
 * @returns The largest value less-than the query value
 * @throws Error if parameters are invalid
 */
export declare function findLessThan(seriesKey: ESeries, value: number): number;
/**
 * The lower limit for a nominal value of a series.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param value - A nominal value
 * @returns The lower tolerance limit
 * @throws Error if parameters are invalid
 */
export declare function lowerToleranceLimit(seriesKey: ESeries, value: number): number;
/**
 * The upper limit for a nominal value of a series.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param value - A nominal value
 * @returns The upper tolerance limit
 * @throws Error if parameters are invalid
 */
export declare function upperToleranceLimit(seriesKey: ESeries, value: number): number;
/**
 * The lower and upper tolerance limits for a nominal value of a series.
 *
 * @param seriesKey - An E-Series key such as ESeries.E24
 * @param value - A nominal value
 * @returns A tuple containing the lower and upper tolerance limits
 * @throws Error if parameters are invalid
 */
export declare function toleranceLimits(seriesKey: ESeries, value: number): [number, number];
