import { IReelGameSession } from "./IReelGameSession";
import { IReelGameSessionConfig } from "./IReelGameSessionConfig";
import { IReelGameSessionReelsController } from "./reelscontroller/IReelGameSessionReelsController";
import { IReelGameSessionWinCalculator } from "./wincalculator/IReelGameSessionWinCalculator";
import { IReelGameSessionWinningLineModel } from "./wincalculator/IReelGameSessionWinningLineModel";
export declare class ReelGameSession implements IReelGameSession {
    static getLosingCombination(winningCalculator: IReelGameSessionWinCalculator, reelsController: IReelGameSessionReelsController): string[][];
    static getWinningCombinationWithScatter(winningCalculator: IReelGameSessionWinCalculator, reelsController: IReelGameSessionReelsController): string[][];
    static getWinningCombinationForSymbol(winningCalculator: IReelGameSessionWinCalculator, reelsController: IReelGameSessionReelsController, symbolId: string, minLinesNumber?: number, allowWilds?: boolean, wildItemId?: string): string[][];
    static getWinningCombinationWithDifferentSymbols(winningCalculator: IReelGameSessionWinCalculator, reelsController: IReelGameSessionReelsController): string[][];
    private readonly _config;
    private readonly _reelsController;
    private readonly _winningCalculator;
    private readonly _adaptee;
    private _winningAmount;
    private _reelsItems;
    constructor(config: IReelGameSessionConfig, reelsController: IReelGameSessionReelsController, winningCalculator: IReelGameSessionWinCalculator);
    getReelsItems(): string[][];
    getWinningLines(): {
        [lineId: string]: IReelGameSessionWinningLineModel;
    };
    getWinningScatters(): {};
    getPaytable(): {
        [p: string]: {
            [p: number]: number;
        };
    };
    getReelsItemsSequences(): string[][];
    getReelsItemsNumber(): number;
    getReelsNumber(): number;
    canPlayNextGame(): boolean;
    getAvailableBets(): number[];
    getBet(): number;
    getCreditsAmount(): number;
    setCreditsAmount(value: number): void;
    getWinningAmount(): number;
    isBetAvailable(bet: number): boolean;
    play(): void;
    setBet(bet: number): void;
}
