/// // Interface // tslint:disable-next-line:no-namespace declare namespace SignalR { // tslint:disable-next-line:no-namespace namespace Hub { interface Connection { Game: { server: GameHubServer; client: GameHubClient; }; Chat: { server: ChatHubServer; client: ChatHubClient; }; } } } interface GameHubServer { join(tableId: number); leave(tableId: number); subscribeLobby(); unsubscribeLobby(); subscribeTournamentLobby(); unsubscribeTournamentLobby(); subscribeTournament(tournamentId: number); unsubscribeTournament(tournamentId: number); betOrRaise(tableId: number, amount: number); checkOrCall(tableId: number); fold(tableId: number); } interface StatusResponse { Status: string; } interface ApiResult { Status: string; Data: T; } interface AvatarsResponse extends StatusResponse { Avatars: string[]; } interface InboxMessagesData { Messages: string[]; } interface SitResponse extends StatusResponse { MinimalAmount: number; } /** * Response for the RegisterGuest API call. */ interface RegisterGuestResponse extends StatusResponse { UserId: number; Login: string; Password: string; } /** * Response for the VersionCheck API call */ interface VersionCheckResponse { /** * Current version of server API. */ ServerApiVersion: number; /** * Minimum compatible version of client API. */ MinimumClientApiVersion: number; } interface PlayerStatusInfo { PlayerId: number; PlayerName: string; PlayerUrl: string; Money: number; Seat: number; Cards: string; Bet: number; Status: number; Points: number; Stars: number; } interface TournamentPlayerStateDefinition { TournamentId: number; TableId: number; Status: TournamentStatus; } interface UserRating { Id: number; Login: string; Points: number; Stars: number; } interface GameWinnerModel { PlayerId: number; Pot: number; CardsDescription: string; Amount: number; } interface PlayerDefinitionProperties { Language: string; Points: string; Stars: string; } interface PlayerDefinition { Email: string; FirstName: string; LastName: string; RealMoney: number; GameMoney: number; Points: number; Properties: PlayerDefinitionProperties; } interface GameTableModel { TableId: number; TableName: string; SmallBlind: number; BigBlind: number; AveragePotSize: number; CurrencyId: number; HandsPerHour: number; JoinedPlayers: number; MaxPlayers: number; PotLimitType: number; TournamentId?: number; } interface BannerData { /** * Id of the banner */ Id: number; /** * Text representation of the banner */ Title: string; /** * URL which could be used to retrieve banner. */ Url: string; /** * URL which could be used to navigate when click on the banner. */ Link: string; } interface GamePlayerStartInformation { /** * Id of the player which participate in the game. */ PlayerId: number; /** * Money which player has on hand. */ Money: number; } interface GameActionStartInformation { /** * Id of the player which executed action in the game. */ PlayerId: number; /** * Type of executed action */ Type: number; /** * Amount of money which put in the pot */ Amount: number; } interface GameHubClient { /** * Informs about current state on the table. * @param tableId Id of the table for which notification passed. * @param players Array of PlayerStatusInfo objects which describe current status of the players * @param pots Array of pots on the table. * @param cards Cards open on the table * @param dealerSeat Current dealer seat. 0 if no game on the table. * @param buyIn Minimum amount of money which player should bring on the table. * @param baseBuyIn Base amount in BB for joining table under normal conditions. * 20*baseBuyIn is maximum amount which player could bring-in. * @param leaveTime Time when player leave table last time. * @param timePass Time in second which is pass from last player turn. * @param currentPlayerId Id of the current player in the game. * @param lastRaise Amount of last raise in the game. * @param gameId Id of the game * @param authenticated Value indicating whether current user is authenticated or not. * @param actionsCount Count of actions which was performed by the player. * @param frozen A value indicating whether game on the table is frozen or not. * @param opened A value indicating whether the table is opened or not. * @param pauseData Unix time when game was paused. If game not paused, then null. * @param lastMessageId Last id of the message. */ TableStatusInfo: (tableId: number, players: PlayerStatusInfo[], pots: number[], cards, dealerSeat, buyIn, baseBuyIn, leaveTime, timePass, currentPlayerId, lastRaise, gameId, authenticated, actionsCount: number, frozen: boolean, opened: boolean, pauseDate: number, lastMessageId: number) => void; GameStarted: (tableId: number, gameId: number, players: GamePlayerStartInformation[], actions: GameActionStartInformation[], dealerSeat: number) => void; Bet: (tableId: number, playerId: number, type: number, amount: number, nextPlayerId: number, actionId: number) => void; OpenCards: (tableId: number, type, cards: string, pots: number[]) => void; /** * Informs that player adds money on the table. * @param tableId Id of the table for which notification passed. * @param playerId Id of the player. * @param amount Amount of money added */ MoneyAdded: (tableId: number, playerId: number, amount: number) => void; /** * Informs that player removes money on the table. * @param tableId Id of the table for which notification passed. * @param playerId Id of the player. * @param amount Amount of money removed */ MoneyRemoved: (tableId: number, playerId: number, amount: number) => void; PlayerCards: (tableId: number, playerId, cards) => void; /** * Inform about player open card. * @param tableId Id of the table where card opened. * @param playerId Id of the player for which card opened. * @param cardPosition Number of card in the hand. * @param card Value of the card. */ PlayerCardOpened: (tableId: number, playerId: number, cardPosition: number, card: number) => void; PlayerCardsMucked: (tableId: number, playerId, cards) => void; MoveMoneyToPot: (tableId, amount) => void; GameFinished: (tableId, gameId, winners, rake) => void; PlayerStatus: (tableId, playerId, status) => void; /** * Informs that player sits on the table. * @param tableId Id of the table for which notification passed. * @param playerId Id of the player. * @param amount Amount of money added */ Sit: (tableId: number, playerId: number, playerName: string, seat: number, amount: number, playerUrl: string, points: number, stars: number) => void; Standup: (tableId, playerId) => void; /** * Informs that table frozen. * @param tableId Id of the table which was frozen. */ TableFrozen: (tableId: number) => void; /** * Informs that table unfrozen. * @param tableId Id of the table which was unfrozen. */ TableUnfrozen: (tableId: number) => void; /** * Informs that table opened. * @param tableId Id of the table which was opened. */ TableOpened: (tableId: number) => void; /** * Informs that table closed. * @param tableId Id of the table which closed. */ TableClosed: (tableId: number) => void; /** * Informs that table resumed. * @param tableId Id of the table which was resumed. */ TableResumed: (tableId: number) => void; /** * Informs that table paused. * @param tableId Id of the table which paused. */ TablePaused: (tableId: number) => void; /** * Inform about cards which could be opened. * @param tableId Id of the table where cards hinted. * @param cards String which represent cards. */ FinalTableCardsOpened: (tableId: number, cards: string) => void; /** * Inform that table bet parameters changed. * @param tableId Id of the table where bet paramters changed. * @param smallBlind New value of small blind on the table * @param bigBlind New value of big blind on the table * @param ante New value of the ante on the table */ TableBetParametersChanged: (tableId: number, smallBlind: number, bigBlind: number, ante: number) => void; /** * Inform about table's tournament change. * @param tableId Id of the table which tournament changed. * @param tournamentId Id of the tournament to which table becomes belonging. */ TableTournamentChanged: (tableId: number, tournamentId: number | null) => void; /** * Notifies that tournament status is changed * tournamentId Number Id of the tournament which status was changed. * status TournamentStatus New status of the tournament */ TournamentStatusChanged: (tournamentId: number, status: TournamentStatus) => void; /** * Notifies that tournament table changed. * tournamentId Number Id of the tournament where table changed. * tableId Number Id of the table to which player should sit. */ TournamentTableChanged: (tournamentId: number, tableId: number) => void; /** * Notifies that player finishing game in the tournament. * tournamentId Number Id of the tournament where player finish game. * placeTaken Number Place which player take in the tournament. */ TournamentPlayerGameCompleted: (tournamentId: number, placeTaken: number) => void; /** * Notifies that tournament bet level changed. * tournamentId Number Id of the tournament where bet level changed. * level Number New bet level */ TournamentBetLevelChanged: (tournamentId: number, level: number) => void; /** * Notifies that tournament round changed. * tournamentId Number Id of the tournament where round changed. * round Number Next tournament round. */ TournamentRoundChanged: (tournamentId: number, round: number) => void; /** * Notifies that in tournament status for doing rebuy or addon. * tournamentId Number Id of the tournament round win by current player. * rebuyAllowed Boolean Indicates that rebuy allowed. * addonAllowed Boolean Indicates that add-on allowed. */ TournamentRebuyStatusChanged: (tournamentId: number, rebuyAllowed: boolean, addonAllowed: boolean) => void; /** * Notifies that in tournament count of made rebuy or addons changed. * tournamentId Number Id of the tournament where count of rebuys/add-ons changed. * rebuyCount Count of rebuys which player done. * addonCount Count of add-ons which player done. */ TournamentRebuyCountChanged: (tournamentId: number, rebuyCount: number, addonCount: number) => void; /** * Informs that tournament frozen. * @param tournamentId Id of the tournament which was frozen. */ TournamentFrozen: (tournamentId: number) => void; /** * Informs that tournament unfrozen. * @param tournamentId Id of the tournament which was unfrozen. */ TournamentUnfrozen: (tournamentId: number) => void; /** * Notifies that player registered in the tournament. * tournamentId Number Id of the tournament where player registered. */ TournamentRegistration: (tournamentId: number) => void; /** * Notifies that player cancel registration in the tournament. * tournamentId Number Id of the tournament where player cancel registration. */ TournamentRegistrationCancelled: (tournamentId: number) => void; } interface ChatHubServer { join(tableId: number); leave(tableId: number); } interface ChatHubClient { ChatConnected: (tableId: number, lastMessageId: number) => void; Message: (messageId: number, tableId: number, type: string, sender: string, message: string) => void; MessageChanged: (messageId: number, tableId: number, type: string, sender: string, message: string) => void; } /** * Table information in the lobby. */ interface LobbyTableItem { /** * Unique id of the table. */ TableId: number; /** * Name of the table */ TableName: string; SmallBlind: number; BigBlind: number; JoinedPlayers: number; MaxPlayers: number; PotLimitType: number; AveragePotSize: number; HandsPerHour: number; CurrencyId: number; SeatMask: number; } interface BaseRequest { Status: string; Data: T; } interface OperationData { Amount: number; OperationDate: string; Operation: number; Comments: number; BookingOffice: string; Status: string; }