| export type ChurnRisk = 'critical' | 'high' | 'medium' | 'low' | 'safe' |
| export type CampaignType = 'leaderboard' | 'rebate' | 'raffle' | 'gift' |
| export type CampaignStatus = 'draft' | 'active' | 'ended' | 'distributed' |
|
|
| export interface Wallet { |
| address: string; churnRisk: ChurnRisk; riskScore: number; lastActive: string; |
| totalVolume: number; streak: number; protocols: string[]; savedCount: number |
| } |
|
|
| export interface Campaign { |
| id: string; name: string; type: CampaignType; status: CampaignStatus; |
| description: string; budget: number; tokenMint: string; participantCount: number; |
| eventsProcessed: number; rewardsDistributed: number; formula?: string; createdBy: 'ai-agent' | 'manual' |
| } |
|
|
| export interface LeaderboardEntry { |
| rank: number; wallet: string; score: number; change24h: number; |
| volume: number; streak: number; protocols: string[]; rewards: number |
| } |
|
|
| export interface ChurnEvent { |
| id: string; wallet: string; eventType: string; timestamp: string; |
| resolved: boolean; campaignTriggered?: string |
| } |
|
|
| export interface ProtocolMetric { |
| protocol: string; volume: number; users: number; churnRate: number; |
| retentionRate: number; avgStreak: number; color: string |
| } |
|
|
| export interface RetentionCohort { |
| week: string; d1: number; d7: number; d14: number; d30: number; d60: number |
| } |
|
|
| export interface DashboardStats { |
| activeWallets: number; walletsAtRisk: number; walletsSaved: number; |
| activeCampaigns: number; totalEventsToday: number; rewardsDistributed: number; |
| avgRetention: number; churnRate: number; agentActionsToday: number; roi: number |
| } |
|
|