import { SDKConfig } from './types'; /** * Main Arcadia Game SDK class */ export declare class ArcadiaSDK { private config; private isIframe; private initialized; private messageHandler; private walletManager; private paymentManager; private apiClient; /** * Create new SDK instance */ constructor(config: SDKConfig); /** * Initialize SDK and request initialization data from parent (iframe) or API (non-iframe) */ init(): Promise; /** * Get wallet address - use this as user identifier * Games should link all save data to this wallet address * Returns null if wallet not connected */ getWalletAddress(): Promise; /** * Check if wallet is connected */ isWalletConnected(): Promise; /** * Listen for wallet connection changes */ onWalletChange(callback: (connected: boolean, address: string | null) => void): void; /** * Remove wallet change listener */ offWalletChange(callback: (connected: boolean, address: string | null) => void): void; /** * Payment methods */ get payment(): { /** * Pay to play - one-time payment to start/access game * @param amount - Payment amount * @param token - Token type: 'SOL', 'USDC', or custom token symbol/mint address * @param txSignature - Optional: Transaction signature (required for non-iframe mode) */ payToPlay: (amount: number, token: "SOL" | "USDC" | string, txSignature?: string) => Promise; /** * In-game purchase - buy items, upgrades, etc. * @param itemId - Item identifier * @param amount - Payment amount * @param token - Token type: 'SOL', 'USDC', or custom token symbol/mint address * @param txSignature - Optional: Transaction signature (required for non-iframe mode) */ purchaseItem: (itemId: string, amount: number, token: "SOL" | "USDC" | string, txSignature?: string) => Promise; }; /** * Stats tracking methods (non-iframe mode only) */ get stats(): { /** * Update playtime for the current game * @param playtimeHours - Total playtime in hours * @param status - Optional: 'playing', 'owned', 'completed' */ updatePlaytime: (playtimeHours: number, status?: "playing" | "owned" | "completed") => Promise; /** * Update user's online status * @param isOnline - Whether the user is online */ updateOnlineStatus: (isOnline: boolean) => Promise; }; /** * Get SDK configuration */ getConfig(): SDKConfig; /** * Check if SDK is running in iframe */ isInIframe(): boolean; /** * Check if SDK is initialized */ isInitialized(): boolean; /** * Cleanup SDK resources */ destroy(): void; /** * Set up message listener for wallet updates */ private setupMessageListener; } //# sourceMappingURL=sdk.d.ts.map