import type { NetworkClient, Optional } from '@sudobility/types'; export interface IndexerAdminConfig { indexerBackendUrl: string; networkClient: NetworkClient; } export interface AdminCampaignConfig { name: string; description: string; type: 'single_use' | 'multi_use' | 'timed'; pointsPerClaim: number; maxClaims?: number; maxUsesPerUser?: number; startTime: string | Date; endTime: string | Date; targetRecipient?: string; metadata?: any; } export interface AdminPointsAward { targetAddress: string; points: number; reason: string; } export interface AdminUserFlag { targetAddress: string; flagged: boolean; reason?: string; } export interface AdminOverviewStats { totalUsers: number; totalPoints: string; totalTransactions: number; activeCampaigns: number; flaggedUsers: number; totalAchievements: number; topUsers: Array<{ walletAddress: string; totalPoints: string; currentStreak: number; longestStreak: number; }>; activityBreakdown: Record; recentActivity: Array<{ id: string; walletAddress: string; activityType: string; pointsAmount: number; balanceBefore: string; balanceAfter: string; createdAt: number; }>; } export interface AdminFlaggedUser { walletAddress: string; totalPoints: string; lifetimeEarned: string; flagReason: string; lastActivityDate: Optional; updatedAt: number; } export interface AdminFlaggedUsers { users: AdminFlaggedUser[]; pagination: { page: number; limit: number; totalCount: number; totalPages: number; hasNext: boolean; hasPrevious: boolean; }; } export interface AdminBulkCodesResponse { message: string; campaignId: string; codes: string[]; count: number; } export declare class IndexerAdminHelper { private config; private client; constructor(config: IndexerAdminConfig); createCampaign(campaign: AdminCampaignConfig, walletAddress: string, signature: string, message?: string): Promise<{ campaignId: string; message: string; }>; deactivateCampaign(campaignId: string, walletAddress: string, signature: string, message?: string): Promise<{ message: string; }>; awardPoints(award: AdminPointsAward, walletAddress: string, signature: string, message?: string): Promise<{ message: string; targetAddress: string; points: number; reason: string; }>; flagUser(userFlag: AdminUserFlag, walletAddress: string, signature: string, message?: string): Promise<{ message: string; targetAddress: string; flagged: boolean; reason: Optional; }>; getOverviewStats(adminSignature: string): Promise; getFlaggedUsers(adminSignature: string, page?: number, limit?: number): Promise; generateBulkCodes(campaignId: string, count: number, walletAddress: string, signature: string, message?: string): Promise; } export declare const createIndexerAdminHelper: (indexerBackendUrl: string, networkClient: NetworkClient) => IndexerAdminHelper; //# sourceMappingURL=indexer-admin.d.ts.map