import { ReceiveLeaderboardMessage, Origin, ReceivePlayMessage, ReceiveTransferHstMessage, ReceiveSubmitScoreMessage } from "./types/types.js";
export declare class GameService {
    private targetOrigin;
    private eventHandlers;
    private pendingPromises;
    private gameId;
    constructor(gameId: string, targetOrigin: Origin);
    on(event: "play", handler: (data: ReceivePlayMessage) => void): void;
    on(event: "leaderboard", handler: (data: ReceiveLeaderboardMessage) => void): void;
    on(event: "transferHst", handler: (data: ReceiveTransferHstMessage) => void): void;
    on(event: "score", handler: (data: ReceiveSubmitScoreMessage) => void): void;
    private sendMessage;
    init(): void;
    play(): Promise<ReceivePlayMessage>;
    submitScore(playId: string, score: number): Promise<ReceiveSubmitScoreMessage>;
    getLeaderboard(): Promise<ReceiveLeaderboardMessage>;
    transferHst(amount: number): Promise<ReceiveTransferHstMessage>;
}
