import { Card } from "./card";
export interface ActivePool {
    actions: number;
    buys: number;
    coins: number;
}
export declare class Player {
    reacting: boolean;
    private discard;
    private deck;
    private setAside;
    private hand;
    private pool?;
    private played;
    constructor(deck: Card[], discard: Card[], hand: Card[]);
    isPlaying(): boolean;
    setup(pool?: ActivePool): void;
    updatePool(pool: ActivePool): void;
    canPlayActionCard(): boolean;
    canBuyCard(): boolean;
    getCoins(): number;
    cleanup(): void;
    drawNCards(n: number): Card[];
    playACard<T extends Card>(card: T): T | undefined;
    discardACard(card: Card): Card | undefined;
    moveBackADiscardedCard(card: Card): Card | undefined;
    putACardFromHandOntoDeck(card: Card): Card | undefined;
    trashACard(card: Card): Card | undefined;
    setAsideACard(card: Card): Card | undefined;
    buyACard(card: Card): void;
    gainACard(card: Card): void;
    gainACardToHand(card: Card): void;
    getDiscard(): Card[];
    getDeck(): Card[];
    getSetAside(): Card[];
    getHand(): Card[];
    getPlayed(): Card[];
    private shuffle;
}
