import type { Chess, Square, Color, PieceSymbol } from 'chess.js'; import type { SharedValue } from 'react-native-reanimated'; type Player = Color; type Type = PieceSymbol; type PieceType = `${Player}${Type}`; type PiecesType = Record>; type Vector = { x: T; y: T; }; type ChessMove = { from: Square; to: Square; }; type EffectTrigger = 'checkmate' | 'check' | 'stalemate' | ''; interface EffectParams { // Center position of the effect (e.g., king position on checkmate) centerX: SharedValue; centerY: SharedValue; // Progress from 0 to 1, animated when effect triggers progress: SharedValue; // Board dimensions boardSize: number; // What triggered the effect (SharedValue for reactivity) trigger: SharedValue; } export type { Chess, Player, Type, PieceType, PiecesType, Vector, ChessMove, Square, Color, PieceSymbol, EffectParams, EffectTrigger, };