UNPKG

anon-identity

Version:

Decentralized identity framework with DIDs, Verifiable Credentials, and privacy-preserving selective disclosure

82 lines 2.29 kB
import { AgentActivity, ActivityQuery, ActivitySearchResult, ActivitySummary, ActivityType, ActivityStatus } from './types'; export interface IndexEntry { id: string; agentDID: string; parentDID: string; timestamp: Date; type: ActivityType; serviceDID: string; status: ActivityStatus; scopes: string[]; sessionId?: string; ipfsHash?: string; year: number; month: number; day: number; hour: number; } export interface IndexStats { totalActivities: number; agentCount: number; serviceCount: number; dateRange: { earliest: Date; latest: Date; }; byType: Record<ActivityType, number>; byStatus: Record<ActivityStatus, number>; } export declare class ActivityIndex { private index; private agentIndex; private serviceIndex; private typeIndex; private statusIndex; private dateIndex; private scopeIndex; /** * Index a single activity for fast searching */ indexActivity(activity: AgentActivity): Promise<void>; /** * Index multiple activities in batch */ indexActivities(activities: AgentActivity[]): Promise<void>; /** * Search activities based on query parameters */ search(query: ActivityQuery): Promise<ActivitySearchResult>; /** * Get activity summary for an agent */ getActivitySummary(agentDID: string, period: 'hour' | 'day' | 'week' | 'month' | 'year', startDate?: Date): Promise<ActivitySummary>; /** * Get activities by multiple agent DIDs */ getActivitiesByAgents(agentDIDs: string[]): Promise<AgentActivity[]>; /** * Get activities by date range */ getActivitiesByDateRange(start: Date, end: Date): Promise<AgentActivity[]>; /** * Get index statistics */ getStats(): IndexStats; /** * Remove activity from index */ removeActivity(activityId: string): Promise<boolean>; /** * Clear all indexed data */ clear(): void; private addToIndex; private removeFromIndex; private intersectSets; private filterByDateRange; private getActivitiesFromIds; private sortActivities; private getPeriodStart; private getPeriodEnd; } //# sourceMappingURL=activity-index.d.ts.map