93 lines
2.3 KiB
TypeScript
93 lines
2.3 KiB
TypeScript
/**
|
|
* Game Iframe SDK - Core
|
|
* SDK chính - compose các layers: MessageHandler, MessageSender
|
|
*/
|
|
import { EventEmitter } from './EventEmitter';
|
|
import { MessageHandler } from './MessageHandler';
|
|
import { MessageSender } from './MessageSender';
|
|
import { GameIframeSDKConfig, SDKEvents, PushDataPayload, LeaderboardData } from './types';
|
|
/**
|
|
* GameIframeSDK - Main SDK class
|
|
* Composes MessageHandler và MessageSender
|
|
*/
|
|
export declare class GameIframeSDK extends EventEmitter<SDKEvents> {
|
|
private config;
|
|
private messageHandler;
|
|
private messageSender;
|
|
private pendingData;
|
|
private isReady;
|
|
constructor(config: GameIframeSDKConfig);
|
|
/**
|
|
* Set iframe element reference
|
|
*/
|
|
setIframe(iframe: HTMLIFrameElement | null): this;
|
|
/**
|
|
* Get current iframe
|
|
*/
|
|
getIframe(): HTMLIFrameElement | null;
|
|
/**
|
|
* Check if game is ready
|
|
*/
|
|
isGameReady(): boolean;
|
|
/**
|
|
* Check if sender is ready (iframe available)
|
|
*/
|
|
isSenderReady(): boolean;
|
|
/**
|
|
* Send game data to iframe
|
|
*/
|
|
sendGameData(data: PushDataPayload): boolean;
|
|
/**
|
|
* Send leaderboard data to iframe
|
|
*/
|
|
sendLeaderboard(data: LeaderboardData): boolean;
|
|
/**
|
|
* Queue data to be sent when game is ready
|
|
*/
|
|
queueGameData(data: PushDataPayload): this;
|
|
/**
|
|
* Clear queued data
|
|
*/
|
|
clearQueuedData(): this;
|
|
/**
|
|
* Force reload iframe
|
|
*/
|
|
reloadIframe(): boolean;
|
|
/**
|
|
* Cleanup and destroy SDK
|
|
*/
|
|
destroy(): void;
|
|
/**
|
|
* Get MessageHandler instance for advanced usage
|
|
*/
|
|
getMessageHandler(): MessageHandler;
|
|
/**
|
|
* Get MessageSender instance for advanced usage
|
|
*/
|
|
getMessageSender(): MessageSender;
|
|
/**
|
|
* Setup event forwarding from MessageHandler to SDK events
|
|
*/
|
|
private setupEventForwarding;
|
|
/**
|
|
* Send queued data
|
|
*/
|
|
private sendQueuedData;
|
|
/**
|
|
* Internal logging
|
|
*/
|
|
private log;
|
|
}
|
|
/**
|
|
* Create SDK instance
|
|
*/
|
|
export declare function createGameIframeSDK(config: GameIframeSDKConfig): GameIframeSDK;
|
|
/**
|
|
* Get or create default SDK instance
|
|
*/
|
|
export declare function getGameIframeSDK(config?: GameIframeSDKConfig): GameIframeSDK;
|
|
/**
|
|
* Destroy default instance
|
|
*/
|
|
export declare function destroyGameIframeSDK(): void;
|
|
//# sourceMappingURL=GameIframeSDK.d.ts.map
|