import { BP, CASINO_GAME_TYPE, SignedFreebet } from "@betswirl/sdk-core"; import React from "react"; import { BetStatus, GameResult, HistoryEntry, Theme, TokenWithImage } from "../../types/types"; import { GameVariant } from "./shared/types"; interface ThemeSettings { theme?: Theme; customTheme?: { "--primary"?: string; "--play-btn-font"?: string; "--connect-btn-font"?: string; "--game-window-overlay"?: string; } & React.CSSProperties; backgroundImage: string; } interface GameFrameContextValue { themeSettings: ThemeSettings; portalContainer: HTMLElement | null; isInfoSheetOpen: boolean; setIsInfoSheetOpen: (open: boolean) => void; isHistorySheetOpen: boolean; setIsHistorySheetOpen: (open: boolean) => void; isLeaderboardSheetOpen: boolean; setIsLeaderboardSheetOpen: (open: boolean) => void; isMounted: boolean; } declare const useGameFrameContext: () => GameFrameContextValue; interface GameFrameProps extends React.HTMLAttributes { themeSettings: ThemeSettings; children: React.ReactNode; variant?: GameVariant; } interface HeaderProps { title: string; connectWalletButton: React.ReactNode; tokenSelector?: React.ReactNode; } declare function Header({ title, connectWalletButton, tokenSelector }: HeaderProps): import("react/jsx-runtime").JSX.Element; interface GameAreaProps { children: React.ReactNode; variant?: GameVariant; } declare function GameArea({ children, variant }: GameAreaProps): import("react/jsx-runtime").JSX.Element; interface InfoButtonProps { winChance?: number; rngFee: number | string; targetPayout: string; gasPrice: number | string; tokenDecimals: number; nativeCurrencySymbol: string; } declare function InfoButton({ winChance, rngFee, targetPayout, gasPrice, tokenDecimals, nativeCurrencySymbol, }: InfoButtonProps): import("react/jsx-runtime").JSX.Element; interface HistoryButtonProps { historyData: HistoryEntry[]; onHistoryOpen: () => void; } declare function HistoryButton({ historyData, onHistoryOpen }: HistoryButtonProps): import("react/jsx-runtime").JSX.Element; interface GameControlsProps { children: React.ReactNode; } declare function GameControls({ children }: GameControlsProps): import("react/jsx-runtime").JSX.Element; interface ResultWindowProps { gameResult: GameResult | null; currency?: string; } declare function ResultWindow({ gameResult, currency }: ResultWindowProps): import("react/jsx-runtime").JSX.Element; interface BettingSectionProps { game: CASINO_GAME_TYPE; balance: bigint; isConnected: boolean; isWalletConnecting: boolean; token: TokenWithImage; betStatus: BetStatus | null; betAmount: bigint | undefined; betCount: number; grossMultiplier: BP; vrfFees: bigint; onBetAmountChange: (amount: bigint | undefined) => void; onPlayBtnClick: () => void; areChainsSynced: boolean; isGamePaused: boolean; needsTokenApproval?: boolean; isApprovePending?: boolean; isApproveConfirming?: boolean; hasValidSelection?: boolean; isRefetchingAllowance?: boolean; approveError?: any; freeBets?: SignedFreebet[]; invalidSelectionMessage?: string; } declare function BettingSection(props: BettingSectionProps): import("react/jsx-runtime").JSX.Element; interface LeaderboardButtonProps { className?: string; } declare function LeaderboardButton({ className }: LeaderboardButtonProps): import("react/jsx-runtime").JSX.Element; export declare const GameFrame: React.ForwardRefExoticComponent> & { Header: typeof Header; GameArea: typeof GameArea; InfoButton: typeof InfoButton; HistoryButton: typeof HistoryButton; GameControls: typeof GameControls; ResultWindow: typeof ResultWindow; BettingSection: typeof BettingSection; LeaderboardButton: typeof LeaderboardButton; }; export { useGameFrameContext };