import type Card from './card'; import Pile from './pile' import type Rule from './rules/rule'; export type winner = { index: number, hand: Card[] } export default function(piles: Pile[], rule: Rule): winner | null { if (piles.length < 1) return null return piles.reduce((accumulator: winner, pile: Pile) => { const priorPile = new Pile(accumulator.hand) const priorPileEvaluated = rule(priorPile) const pileEvaluated = rule(pile) }, { index: -1, hand: [] }) }