import type { GameId, GameStat, GameStatus } from '@shared/types' export type MatchEndPayload = { durationMs: number won?: boolean stats: Partial> } export type ProviderEventHandler = (event: { type: 'match_end' payload: MatchEndPayload }) => void export interface GameProvider { readonly id: GameId readonly displayName: string detect(): Promise install(): Promise uninstall(): Promise start(emit: ProviderEventHandler): Promise stop(): Promise reconcile?(): Promise }