import { LinesDefinitionsDescribing, LinesPatternsDescribing, PaytableRepresenting, SymbolsCombinationDescribing, SymbolsCombinationsGenerating, SymbolsSequenceDescribing, VideoSlotSessionHandling, VideoSlotWinCalculating, VideoSlotWithFreeGamesConfigRepresenting, VideoSlotWithFreeGamesSessionHandling, WinningLineDescribing, WinningScatterDescribing } from "pokie";
export declare class VideoSlotWithFreeGamesSession implements VideoSlotWithFreeGamesSessionHandling {
    private readonly baseSession;
    private readonly config;
    private freeGamesNum;
    private freeGamesSum;
    private freeBank;
    constructor(config?: VideoSlotWithFreeGamesConfigRepresenting, combinationsGenerator?: SymbolsCombinationsGenerating, winCalculator?: VideoSlotWinCalculating, baseSession?: VideoSlotSessionHandling);
    getWonFreeGamesNumber(): number;
    getFreeGamesNum(): number;
    setFreeGamesNum(value: number): void;
    getFreeGamesSum(): number;
    setFreeGamesSum(value: number): void;
    getFreeGamesBank(): number;
    setFreeGamesBank(value: number): void;
    getPaytable(): PaytableRepresenting;
    getSymbolsCombination(): SymbolsCombinationDescribing;
    getWinningLines(): Record<number, WinningLineDescribing>;
    getWinningScatters(): Record<string, WinningScatterDescribing>;
    getSymbolsSequences(): SymbolsSequenceDescribing[];
    getReelsSymbolsNumber(): number;
    getReelsNumber(): number;
    getAvailableSymbols(): string[];
    getCreditsAmount(): number;
    setCreditsAmount(creditsAmount: number): void;
    getWinAmount(): number;
    getAvailableBets(): number[];
    getBet(): number;
    setBet(bet: number): void;
    canPlayNextGame(): boolean;
    play(): void;
    getFreeGamesForScatters(symbolId: string, numberOfSymbols: number): number;
    isSymbolWild(symbolId: string): boolean;
    isSymbolScatter(symbolId: string): boolean;
    getWildSymbols(): string[];
    getScatterSymbols(): string[];
    getLinesDefinitions(): LinesDefinitionsDescribing;
    getLinesPatterns(): LinesPatternsDescribing;
    getLinesWinning(): number;
    getScattersWinning(): number;
}
