Initial commit

This commit is contained in:
AnRil
2026-05-16 13:43:29 +07:00
commit 688a86b611
208 changed files with 44350 additions and 0 deletions

View File

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