///
///
import { ValueMetricRangeSetter, ValueMetricCalculatorFunction, ValueMetricConfig, MetricContract, ResourceContract } from '@tensei/common';
import * as CSS from 'csstype';
import { DateTime } from 'luxon';
import { Card } from '../dashboard/Card';
export declare class ValueMetrics extends Card implements MetricContract {
config: ValueMetricConfig;
ranges(rangeSetter: ValueMetricRangeSetter): this;
result(value: number): import("./ValueMetricResult").ValueMetricResult;
compute: (calculator: ValueMetricCalculatorFunction) => this;
count(resourceSlugOrResource: string | ResourceContract): Promise;
max(resourceSlugOrResource: string | ResourceContract, columns: string | string[]): Promise;
min(resourceSlugOrResource: string | ResourceContract, columns: string | string[]): Promise;
avg(resourceSlugOrResource: string | ResourceContract, columns: string | string[]): Promise;
private getRanges;
currentRange(range: string | number, timezone: string): [DateTime, DateTime];
previousRange(range: string | number, timezone: string): [DateTime, DateTime];
selectStyles(styles: CSS.Properties): this;
serialize(): {
ranges: {
label: string;
value: string;
}[];
selectStyles: CSS.Properties<0 | (string & {}), string & {}>;
name: string;
slug: string;
textColor: string;
width: import("@tensei/common").Width;
background: string;
customStyles: CSS.Properties<0 | (string & {}), string & {}>;
component: string;
backgroundImage: string;
};
}
export declare const valueMetric: (name: string, slug?: string | undefined) => ValueMetrics;