import { IReelGameSessionWinCalculator } from "./IReelGameSessionWinCalculator";
import { IReelGameSessionWinningLineModel } from "./IReelGameSessionWinningLineModel";
import { IReelGameSessionWinCalculatorConfig } from "./IReelGameSessionWinCalculatorConfig";
export declare class ReelGameSessionWinCalculator implements IReelGameSessionWinCalculator {
    static createLinesPatterns(reelsNumber: number): number[][];
    static getItemsForDirection(items: string[][], direction: number[]): string[];
    static getItemsMatchingPattern(items: string[], pattern: number[]): string[];
    static getMatchingPattern(items: string[], patterns: number[][], wildItemId?: string): number[];
    static isMatchPattern(items: string[], pattern: number[], wildItemId?: string): boolean;
    static getWinningItemId(items: string[], pattern: number[], wildItemId?: string): string;
    static getWildItemsPositions(items: string[], pattern: number[], wildItemId: string): number[];
    static getScatterItemsPositions(items: string[][], scatterItemId: string): number[][];
    static getWinningLinesIds(items: string[][], linesDirections: {
        [lineId: string]: number[];
    }, patterns: number[][], wildItemId?: string): string[];
    static getLinesWithSymbol(lines: {
        [lineId: string]: IReelGameSessionWinningLineModel;
    }, symbolId: string): IReelGameSessionWinningLineModel[];
    static getLinesWithDifferentSymbols(lines: {
        [lineId: string]: IReelGameSessionWinningLineModel;
    }): IReelGameSessionWinningLineModel[];
    static isAllLinesHasSameItemId(lines: {
        [lineId: string]: IReelGameSessionWinningLineModel;
    }): boolean;
    static getLinesContainingItem(lines: {
        [lineId: string]: IReelGameSessionWinningLineModel;
    }, items: string[][], itemId: string): IReelGameSessionWinningLineModel[];
    private readonly _config;
    private readonly _reelsItemsNumber;
    private readonly _reelsNumber;
    private readonly _wildItemId;
    private readonly _scatters;
    private readonly _linesDirections;
    private readonly _wildsMultipliers;
    private readonly _paytable;
    private _items;
    private _winningLines;
    private _winningScatters;
    private readonly _linesPatterns;
    private _linesWinning;
    private _scattersWinning;
    constructor(conf: IReelGameSessionWinCalculatorConfig);
    getWinningAmount(): number;
    getLinesWinning(): number;
    getScattersWinning(): number;
    setGameState(bet: number, items: string[][]): void;
    getWinningLines(): {
        [lineId: string]: IReelGameSessionWinningLineModel;
    };
    getWinningScatters(): {};
    private calculateWinning;
    private generateWinningScatters;
    private getScatterItemsPositions;
    private generateWinningLine;
    private getLineWinningAmount;
    private getScatterWinningAmount;
}
