import { AbstractMetric } from './AbstractMetric';
import { MetricValue } from './BasicInsightsMetricData';
/**
 * Class to represent a simple metric.
 *
 * @author Tiago Grosso <tiagogrosso99@gmail.com>
 * @since 0.1.0
 */
export declare class SimpleMetric extends AbstractMetric<MetricValue<number>[]> {
    /**
     * Gets the metric values that match the provided expression.
     *
     * @param expression expression to match the values to.
     *
     * @returns the metric values that match the provided expression.
     */
    getByExpression(expression: (elem: MetricValue<number>) => boolean): MetricValue<number>[];
    /**
     * Gets the metric values greater than the provided limit.
     *
     * @param limit the limit.
     *
     * @returns the metric values greater than the provided limit.
     */
    getGreaterThan(limit: number): MetricValue<number>[];
    /**
     * Gets the metric values greater than or equal to the provided limit.
     *
     * @param limit the limit.
     *
     * @returns the metric values greater than or equal to the provided limit.
     */
    getGreaterThanOrEqual(limit: number): MetricValue<number>[];
    /**
     * Gets the metric values smaller than the provided limit.
     *
     * @param limit the limit.
     *
     * @returns the metric values smaller than the provided limit.
     */
    getLessThan(limit: number): MetricValue<number>[];
    /**
     * Gets the metric values smaller than or equal to the provided limit.
     *
     * @param limit the limit.
     *
     * @returns the metric values smaller than or equal to the provided limit.
     */
    getLessThanOrEqual(limit: number): MetricValue<number>[];
    /**
     * Gets the metric values equal to the provided value.
     *
     * @param value the limit.
     *
     * @returns the metric values equal to the provided value.
     */
    getEqual(value: number): MetricValue<number>[];
    /**
     * Gets the metric values between the provided bounds (non-inclusive).
     *
     * @param lower the lower bound.
     * @param upper the upper bound.
     *
     * @returns the metric values between the provided bounds (non-inclusive).
     */
    getBetween(lower: number, upper: number): MetricValue<number>[];
    /**
     * Returns the the highest value of the metric. In case of a tie, the first value found is returned.
     *
     * @returns the highest value of the metric.
     */
    getHighest(): MetricValue<number> | undefined;
    /**
     * Returns the the lowest value of the metric. In case of a tie, the first value found is returned.
     *
     * @returns the lowest value of the metric.
     */
    getLowest(): MetricValue<number> | undefined;
}
