import { BasicInsightsMetricData } from './BasicInsightsMetricData';
/**
 * Abstract class to represent a metric.
 *
 * @param T the type of the 'values' object.
 *
 * @author Tiago Grosso <tiagogrosso99@gmail.com>
 * @since 0.1.0
 */
export declare abstract class AbstractMetric<T> {
    /**
     * The metric data.
     */
    protected metricData: BasicInsightsMetricData<T>;
    /**
     * The constructor.
     *
     * @param metricData the metric data.
     */
    constructor(metricData: BasicInsightsMetricData<T>);
    /**
     * Gets the metric data.
     *
     * @returns the metric data.
     */
    getMetricData(): BasicInsightsMetricData<T>;
    /**
     * Gets the metric name.
     *
     * @returns the metric name.
     */
    getMetricName(): string;
    /**
     * Gets the metric period.
     *
     * @returns the metric period.
     */
    getMetricPeriod(): string;
    /**
     * Gets the metric title.
     *
     * @returns the metric title.
     */
    getMetricTitle(): string;
    /**
     * Gets the metric description.
     *
     * @returns the metric description.
     */
    getMetricDescription(): string;
    /**
     * Gets the metric id.
     *
     * @returns the metric id.
     */
    getMetricId(): string;
    /**
     * Gets the metric values.
     *
     * @returns the metric values.
     */
    getMetricValues(): T;
}
