import { ReactNode } from 'react'; import { Contract } from 'ethers'; export interface ChainConfig { chainId: string; rpcUrl: string; registryAddress: string; bridgeAdapterAddress: string; } export interface SoulStreamConfig { rpcUrl: string; contractAddress: string; contractABI: any[]; chainA?: ChainConfig; chainB?: ChainConfig; privateKey?: string; } export interface SoulStreamContextType { isInitialized: boolean; error: string | null; getReputationScore: (walletAddress: string) => Promise; getRewards: (walletAddress: string) => Promise; claimReward: (walletAddress: string, rewardId: string) => Promise; chains: { chainA: ChainConfig | null; chainB: ChainConfig | null; }; switchChain: (chainId: string) => Promise; currentChainId: string | null; } export interface SoulStreamProviderProps { children: ReactNode; config?: SoulStreamConfig; } export interface ReputationData { score: number; trust: number; activity: number; engagement: number; } export interface Reward { id: string; name: string; amount: string; } export interface ClaimedReward extends Reward { claimedAt: number; } export interface RewardsData { unclaimed: Reward[]; claimed: ClaimedReward[]; } export interface ReputationComponentProps { walletAddress: string; showDetails?: boolean; } export interface RewardsComponentProps { walletAddress: string; showClaimed?: boolean; showUnclaimed?: boolean; } export interface WithSoulStreamOptions { devMode?: boolean; testMode?: boolean; chains?: { enableMainnet?: boolean; enableTestnet?: boolean; }; [key: string]: any; }