import { PlayerStreetStats, PokerMetrics } from './types';
export declare const emptyMetric: Omit<PokerMetrics, 'gameId' | 'hand' | 'tableId' | 'playerId' | 'timestamp' | 'street'>;
type MetricName = keyof Omit<PlayerStreetStats, 'gameIds'>;
type GroupedMetrics<T extends MetricName[]> = T extends [infer First, ...infer Rest] ? Record<First extends MetricName ? PlayerStreetStats[First] | 'total' : string, GroupedMetrics<Rest extends MetricName[] ? Rest : []>> : PokerMetrics;
export type AgregatedMetrics<T extends MetricName[]> = GroupedMetrics<T>;
export declare function getPokerMetrics<T extends (keyof PlayerStreetStats)[]>(stats: PlayerStreetStats[], groups?: T, withTotals?: boolean): AgregatedMetrics<T>;
export declare function aggregateMetricsProperties(metric: PokerMetrics): PokerMetrics;
export {};
//# sourceMappingURL=metrics.d.ts.map