import { Interpolation, Theme } from '@emotion/react'; import { DisplayedAction } from '@gamepark/react-client'; import { MaterialGame, MaterialMove } from '@gamepark/rules-api'; import { ComponentType } from 'react'; export type MaterialLogProps = MoveComponentProps>; export type MoveComponentProps = { move: Move; context: MoveComponentContext; }; export type MoveComponentContext = { game: Game; action: DisplayedAction; consequenceIndex?: number; }; export type MovePlayedLogDescription = { Component: ComponentType>; player?: Player; depth?: number; css?: Interpolation; liveCss?: boolean; }; export type SetupLogDescription = { Component: ComponentType<{ game: Game; index: number; }>; css?: Interpolation; }; export interface LogDescription { getMovePlayedLogDescription(move: Move, context: MoveComponentContext): MovePlayedLogDescription | undefined; getSetupLogDescriptions?(game: Game): SetupLogDescription[]; }