import { DamageEffectName } from '../../damage';
import { GameType } from '../../game';
import { Kart } from '../../kart';
import { SocketInitRaspberryInput, SocketRegisterKartCheckpointInput } from '../inputs';
export type SocketGameTrackClientToServerEventsParams = {
    'game-track:init': {
        macAddress: string;
    };
    'game-track:emergency:buttonPressed': {
        macAddress: string;
    };
    'game-track:emergency:buttonReleased': {
        macAddress: string;
    };
};
export type SocketKartClientToServerEventsParams = {
    'kart:init': SocketInitRaspberryInput;
    'kart:checkpoint': SocketRegisterKartCheckpointInput;
    'kart:damage:sent': {
        macAddress: string;
        damageName: DamageEffectName;
    };
    'kart:damage:received': {
        macAddress: string;
        damageName: DamageEffectName;
    };
    'kart:data:changed': {
        macAddress: string;
        kart: Kart;
    };
};
export type SocketWebAppClientToServerEventsParams = {
    'karts:authenticate': {
        authToken: string;
    };
    'karts:list': undefined;
    'karts:tracking:subscribe': {
        kartGuid: string;
    };
    'karts:tracking:unsubscribe': {
        kartGuid: string;
    };
    'game-changed:subscribe': {
        gameId: string;
        gameType: GameType;
    };
    'game-changed:unsubscribe': {
        gameId: string;
        gameType: GameType;
    };
    'game-tracks:list': undefined;
};
