import { Player, TutorialDescription } from '@gamepark/react-client'; import { LocationBuilder, Material, MaterialGame, MaterialGameSetup, MaterialMove, MaterialMoveRandomized, MaterialRules, XYCoordinates } from '@gamepark/rules-api'; import { TFunction } from 'i18next'; import { ReactNode } from 'react'; import { MaterialContext } from '../../locators'; import { MaterialFocus } from '../material'; export declare abstract class MaterialTutorial

implements TutorialDescription, MaterialMove> { abstract options: any; abstract setup: MaterialGameSetup; abstract steps: TutorialStep[]; abstract players: Player

[]; material(game: MaterialGame, type: M): Material; location(type: L): LocationBuilder; setupTutorial(): [MaterialGame, Player

[]]; getNextMove(rules: MaterialRules): MaterialMove | undefined; } export declare enum TutorialStepType { Popup = 1, Move = 2 } export type TutorialStepBase = { zoom?: number; }; export type TutorialStep

= { popup?: TutorialPopup; focus?: (game: MaterialGame, context: MaterialContext) => Partial>; view?: V; move?: { player?: P; filter?: (move: MaterialMove, game: MaterialGame) => boolean; randomize?: (move: MaterialMoveRandomized) => void; interrupt?: (move: MaterialMove) => boolean; auto?: boolean; }; }; export type TutorialPopup = { text: (t: TFunction, game: MaterialGame) => string | ReactNode; position?: Partial; size?: { height?: number; width?: number; }; }; export declare function isMaterialTutorial

(tutorialDescription?: TutorialDescription): tutorialDescription is MaterialTutorial;