import { EnvType, IProcessorResult, IProcessProductPayload, FetchRemoteCachePayload, IRemoteCache, IRefreshTokenReq, IFileURLPayload } from '../../types'; import { IRequestExtension } from '../../types/requests.types'; export interface IProcessorApiService { /** Save processor result (fire-and-forget from feature/processor). data must include start and end (Unix ms). */ saveResult(data: IProcessorResult, payload: IRequestExtension): Promise; saveResultsBatch(data: IProcessorResult[], payload: IRequestExtension): Promise; processProduct(product_id: string, payload: IProcessProductPayload, auth: IRequestExtension): Promise; fetchResult(process_id: string, payload: IRequestExtension): Promise; fetchRemoteCacheByKey(key: string, auth: IRequestExtension): Promise; fetchRemoteCaches(payload: FetchRemoteCachePayload, auth: IRequestExtension): Promise>; addToRemoteCache(payload: IRemoteCache, auth: IRequestExtension): Promise; createSessionInfo(payload: IRefreshTokenReq, auth: IRequestExtension): Promise; revokeSession(payload: { product: string; env: string; sessionId?: string; identifier?: string; }, auth: IRequestExtension): Promise; listSessions(payload: { product: string; env: string; tag: string; identifier?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ sessions: any[]; total: number; page: number; limit: number; }>; saveFileURL(payload: IFileURLPayload, auth: IRequestExtension): Promise; validateRefreshToken(payload: { refreshToken: string; product: string; env: string; }, auth: IRequestExtension): Promise; checkSessionRevoked(payload: { product: string; env: string; sessionId?: string; identifier?: string; }, auth: IRequestExtension): Promise<{ revoked: boolean; }>; getBrokerEvents(payload: { product: string; env: string; brokerTag: string; topic?: string; category?: string; status?: string; idempotent?: boolean; startDate?: string; endDate?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ events: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; getBrokerEvent(payload: { product: string; eventId: string; }, auth: IRequestExtension): Promise; replayBrokerEvent(payload: { product: string; env: string; eventId: string; force?: boolean; }, auth: IRequestExtension): Promise<{ success: boolean; new_event_id?: string; process_id?: string; error?: string; }>; getBrokerEventStats(payload: { product: string; env: string; brokerTag: string; }, auth: IRequestExtension): Promise; reprocessDLQ(payload: { product: string; env: string; brokerTag: string; topicTag?: string; messageIds?: string[]; limit?: number; }, auth: IRequestExtension): Promise<{ success: boolean; reprocessed_count: number; failed_count: number; event_ids: string[]; errors?: string[]; }>; checkIdempotency(payload: { product: string; env: string; idempotencyKey: string; }, auth: IRequestExtension): Promise<{ exists: boolean; event_id?: string; }>; fetchSessionUsers(payload: { product_tag: string; session_tag: string; env?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ users: any[]; total: number; page: number; limit: number; totalPages: number; }>; fetchSessionUserDetails(payload: { product_tag: string; session_tag: string; identifier: string; env?: string; }, auth: IRequestExtension): Promise; fetchSessionActivityLogs(payload: { product_tag: string; session_tag: string; env?: string; status?: string; start_date?: string; end_date?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ logs: any[]; total: number; page: number; limit: number; totalPages: number; }>; fetchSessionUsersDashboard(payload: { product_tag: string; session_tag: string; env?: string; }, auth: IRequestExtension): Promise<{ totalUsers: number; activeUsers: number; inactiveUsers: number; expiredUsers: number; newUsersToday: number; newUsersThisWeek: number; totalSessions: number; activeSessions: number; averageSessionsPerUser: number; dau: { current: number; previous: number; change: number; }; wau: { current: number; previous: number; change: number; }; mau: { current: number; previous: number; change: number; }; activityTimeline: Array<{ date: string; sessions: number; }>; peakHours: Array<{ hour: string; count: number; }>; environmentBreakdown: Array<{ env: string; count: number; percentage: number; }>; avgSessionDuration: { current: string; previous: string; change: number; }; }>; fetchUserDashboard(payload: { product_tag: string; session_tag: string; identifier: string; env?: string; }, auth: IRequestExtension): Promise<{ totalLogs: number; successRate: number; activityTimeline: Array<{ day: string; count: number; }>; peakHours: Array<{ hour: string; count: number; }>; }>; fetchSessionActivityDashboard(payload: { product_tag: string; session_tag: string; env?: string; groupBy?: string; start_date?: string; end_date?: string; }, auth: IRequestExtension): Promise; fetchCacheValues(payload: { product_tag: string; cache_tag: string; env?: string; page?: number; limit?: number; expiryFilter?: 'all' | 'expiring' | 'permanent' | 'expired'; }, auth: IRequestExtension): Promise<{ values: any[]; total: number; page: number; limit: number; totalPages: number; }>; fetchCacheValuesDashboard(payload: { product_tag: string; cache_tag: string; env?: string; }, auth: IRequestExtension): Promise<{ totalValues: number; activeValues: number; expiredValues: number; totalSize: number; }>; deleteCacheValue(payload: { key: string; }, auth: IRequestExtension): Promise; deleteCacheValues(payload: { product_tag: string; cache_tag: string; env?: string; }, auth: IRequestExtension): Promise<{ deleted: number; }>; /** Log notification message send for reprocessing (fire-and-forget from processor). Input may be encrypted with product private key. */ logNotificationMessage(payload: { workspace_id: string; product_id: string; product_tag: string; env: string; notification_tag: string; input: Record | string; type: 'email' | 'push' | 'sms' | 'callback' | 'slack' | 'discord' | 'notification'; status: 'pending' | 'sent' | 'failed'; process_id?: string; error?: string; retries?: number; session?: string; cache?: string; }, auth: IRequestExtension): Promise; /** Create job execution record (fire-and-forget from processor). input must be encrypted string. */ createJobExecution(payload: { job_id: string; workspace_id: string; product_id: string; product_tag: string; env: string; job_tag: string; job_type: string; phase?: string; scheduled_at?: number | Date; started_at?: number | Date; triggered_by?: string; input?: string; operation?: string; }, auth: IRequestExtension): Promise; /** Update job execution phase (fire-and-forget from processor). output and result_metadata must be encrypted strings. */ updateJobExecutionPhase(payload: { workspace_id: string; job_id: string; phase: string; started_at?: number | Date; completed_at?: number | Date; duration_ms?: number; error?: string; error_code?: string; retry_count?: number; result_metadata?: string; output?: string; operation?: string; }, auth: IRequestExtension): Promise; /** Query notification message logs (send history) with time filters. Secured via user auth. */ queryNotificationMessageLogs(payload: { workspace_id: string; product_tag?: string; product_id?: string; env?: string; notification_tag?: string; status?: string; type?: string; process_id?: string; start_date?: string; end_date?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ items: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; trackBrokerMessage(payload: { workspace_id: string; product_id: string; product_tag: string; env: string; broker_tag: string; topic_tag: string; event: string; producer_tag: string; message_encrypted: string; idempotency_key?: string; process_id?: string; session_tag?: string; metadata?: Record; message_id?: string; }, auth: IRequestExtension): Promise; trackBrokerMessageIdempotent(payload: { workspace_id: string; product_id: string; product_tag: string; env: string; broker_tag: string; topic_tag: string; event: string; producer_tag: string; message_encrypted: string; idempotency_key?: string; process_id?: string; session_tag?: string; metadata?: Record; message_id?: string; }, auth: IRequestExtension): Promise<{ message: any; isDuplicate: boolean; }>; registerBrokerConsumer(payload: { message_id: string; consumer_tag: string; }, auth: IRequestExtension): Promise; updateBrokerConsumerStatus(payload: { message_id: string; consumer_tag: string; status: 'pending' | 'success' | 'failed' | 'partial'; error?: string; retry_count?: number; response_data?: Record; private_key?: string; processing_time?: number; }, auth: IRequestExtension): Promise; getBrokerMessageStats(payload: { product_tag: string; env: string; broker_tag: string; }, auth: IRequestExtension): Promise<{ total: number; pending: number; success: number; failed: number; partial: number; }>; retryBrokerMessage(payload: { message_id: string; consumer_tag: string; }, auth: IRequestExtension): Promise; failBrokerMessage(payload: { message_id: string; error: string; }, auth: IRequestExtension): Promise; queryBrokerMessages(payload: { product_tag: string; env: string; broker_tag: string; topic_tag?: string; producer_tag?: string; consumer_tag?: string; status?: string; start_date?: string; end_date?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ messages: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; getBrokerProducers(payload: { product_tag: string; env: string; broker_tag: string; topic_tag?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ producers: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; getBrokerConsumers(payload: { product_tag: string; env: string; broker_tag: string; topic_tag?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ consumers: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; getBrokerDeadLetters(payload: { product_tag: string; env: string; broker_tag: string; topic_tag?: string; consumer_tag?: string; start_date?: string; end_date?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ deadLetters: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; getBrokerComprehensiveStats(payload: { product_tag: string; env: string; broker_tag: string; }, auth: IRequestExtension): Promise; getBrokerDashboard(payload: { product_tag: string; env: string; broker_tag: string; }, auth: IRequestExtension): Promise; } export declare class ProcessorApiService implements IProcessorApiService { private environment; constructor(environment: EnvType); saveFileURL(payload: IFileURLPayload, auth: IRequestExtension): Promise; /** * Save processor result (fire-and-forget from feature executor / processor). * data must include start and end (Unix ms) for timeline and list ordering. */ saveResult(data: IProcessorResult, payload: IRequestExtension): Promise; saveResultsBatch(items: IProcessorResult[], payload: IRequestExtension): Promise; fetchResult(process_id: string, payload: IRequestExtension): Promise; processProduct(product_id: string, payload: IProcessProductPayload, auth: IRequestExtension): Promise; fetchRemoteCacheByKey(key: string, auth: IRequestExtension): Promise; fetchRemoteCaches(payload: FetchRemoteCachePayload, auth: IRequestExtension): Promise; addToRemoteCache(payload: IRemoteCache, auth: IRequestExtension): Promise; createSessionInfo(payload: IRefreshTokenReq, auth: IRequestExtension): Promise; revokeSession(payload: { product: string; env: string; sessionId?: string; identifier?: string; }, auth: IRequestExtension): Promise; listSessions(payload: { product: string; env: string; tag: string; identifier?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ sessions: any[]; total: number; page: number; limit: number; }>; validateRefreshToken(payload: { refreshToken: string; product: string; env: string; }, auth: IRequestExtension): Promise; checkSessionRevoked(payload: { product: string; env: string; sessionId?: string; identifier?: string; }, auth: IRequestExtension): Promise<{ revoked: boolean; }>; getBrokerEvents(payload: { product: string; env: string; brokerTag: string; topic?: string; category?: string; status?: string; idempotent?: boolean; startDate?: string; endDate?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ events: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; getBrokerEvent(payload: { product: string; eventId: string; }, auth: IRequestExtension): Promise; replayBrokerEvent(payload: { product: string; env: string; eventId: string; force?: boolean; }, auth: IRequestExtension): Promise<{ success: boolean; new_event_id?: string; process_id?: string; error?: string; }>; getBrokerEventStats(payload: { product: string; env: string; brokerTag: string; }, auth: IRequestExtension): Promise; reprocessDLQ(payload: { product: string; env: string; brokerTag: string; topicTag?: string; messageIds?: string[]; limit?: number; }, auth: IRequestExtension): Promise<{ success: boolean; reprocessed_count: number; failed_count: number; event_ids: string[]; errors?: string[]; }>; checkIdempotency(payload: { product: string; env: string; idempotencyKey: string; }, auth: IRequestExtension): Promise<{ exists: boolean; event_id?: string; }>; fetchSessionUsers(payload: { product_tag: string; session_tag: string; env?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ users: any[]; total: number; page: number; limit: number; totalPages: number; }>; fetchSessionUserDetails(payload: { product_tag: string; session_tag: string; identifier: string; env?: string; }, auth: IRequestExtension): Promise; fetchSessionActivityLogs(payload: { product_tag: string; session_tag: string; env?: string; status?: string; start_date?: string; end_date?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ logs: any[]; total: number; page: number; limit: number; totalPages: number; }>; fetchSessionUsersDashboard(payload: { product_tag: string; session_tag: string; env?: string; }, auth: IRequestExtension): Promise<{ totalUsers: number; activeUsers: number; inactiveUsers: number; expiredUsers: number; newUsersToday: number; newUsersThisWeek: number; totalSessions: number; activeSessions: number; averageSessionsPerUser: number; dau: { current: number; previous: number; change: number; }; wau: { current: number; previous: number; change: number; }; mau: { current: number; previous: number; change: number; }; activityTimeline: Array<{ date: string; sessions: number; }>; peakHours: Array<{ hour: string; count: number; }>; environmentBreakdown: Array<{ env: string; count: number; percentage: number; }>; avgSessionDuration: { current: string; previous: string; change: number; }; }>; fetchUserDashboard(payload: { product_tag: string; session_tag: string; identifier: string; env?: string; }, auth: IRequestExtension): Promise<{ totalLogs: number; successRate: number; activityTimeline: Array<{ day: string; count: number; }>; peakHours: Array<{ hour: string; count: number; }>; }>; fetchSessionActivityDashboard(payload: { product_tag: string; session_tag: string; env?: string; groupBy?: string; start_date?: string; end_date?: string; }, auth: IRequestExtension): Promise; fetchCacheValues(payload: { product_tag: string; cache_tag: string; env?: string; page?: number; limit?: number; expiryFilter?: 'all' | 'expiring' | 'permanent' | 'expired'; }, auth: IRequestExtension): Promise<{ values: any[]; total: number; page: number; limit: number; totalPages: number; }>; fetchCacheValuesDashboard(payload: { product_tag: string; cache_tag: string; env?: string; }, auth: IRequestExtension): Promise<{ totalValues: number; activeValues: number; expiredValues: number; totalSize: number; }>; deleteCacheValue(payload: { key: string; }, auth: IRequestExtension): Promise; deleteCacheValues(payload: { product_tag: string; cache_tag: string; env?: string; }, auth: IRequestExtension): Promise<{ deleted: number; }>; logNotificationMessage(payload: { workspace_id: string; product_id: string; product_tag: string; env: string; notification_tag: string; input: Record | string; type: 'email' | 'push' | 'sms' | 'callback' | 'slack' | 'discord' | 'notification'; status: 'pending' | 'sent' | 'failed'; process_id?: string; error?: string; retries?: number; session?: string; cache?: string; }, auth: IRequestExtension): Promise; /** * Create job execution record (fire-and-forget from processor). Does not throw; errors are logged. * input must be sent encrypted (product private key); backend must not receive unencrypted input. */ createJobExecution(payload: { job_id: string; workspace_id: string; product_id: string; product_tag: string; env: string; job_tag: string; job_type: string; phase?: string; scheduled_at?: number | Date; started_at?: number | Date; triggered_by?: string; /** Encrypted JSON string (encrypt with product private key before calling). */ input?: string; operation?: string; }, auth: IRequestExtension): Promise; /** * Update job execution phase (fire-and-forget from processor). Does not throw; errors are logged. * output and result_metadata must be sent encrypted (product private key); backend must not receive unencrypted data. */ updateJobExecutionPhase(payload: { workspace_id: string; job_id: string; phase: string; started_at?: number | Date; completed_at?: number | Date; duration_ms?: number; error?: string; error_code?: string; retry_count?: number; /** Encrypted JSON string (encrypt with product private key before calling). */ result_metadata?: string; /** Encrypted JSON string (encrypt with product private key before calling). */ output?: string; operation?: string; }, auth: IRequestExtension): Promise; queryNotificationMessageLogs(payload: { workspace_id: string; product_tag?: string; product_id?: string; env?: string; notification_tag?: string; status?: string; type?: string; process_id?: string; start_date?: string; end_date?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ items: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; trackBrokerMessage(payload: { workspace_id: string; product_id: string; product_tag: string; env: string; broker_tag: string; topic_tag: string; event: string; producer_tag: string; message_encrypted: string; idempotency_key?: string; process_id?: string; session_tag?: string; metadata?: Record; message_id?: string; }, auth: IRequestExtension): Promise; trackBrokerMessageIdempotent(payload: { workspace_id: string; product_id: string; product_tag: string; env: string; broker_tag: string; topic_tag: string; event: string; producer_tag: string; message_encrypted: string; idempotency_key?: string; process_id?: string; session_tag?: string; metadata?: Record; message_id?: string; }, auth: IRequestExtension): Promise<{ message: any; isDuplicate: boolean; }>; registerBrokerConsumer(payload: { message_id: string; consumer_tag: string; status?: 'pending' | 'success' | 'failed' | 'partial'; error?: string; }, auth: IRequestExtension): Promise; updateBrokerConsumerStatus(payload: { message_id: string; consumer_tag: string; status: 'pending' | 'success' | 'failed' | 'partial'; error?: string; retry_count?: number; response_data?: Record; private_key?: string; }, auth: IRequestExtension): Promise; getBrokerMessageStats(payload: { product_tag: string; env: string; broker_tag: string; }, auth: IRequestExtension): Promise<{ total: number; pending: number; success: number; failed: number; partial: number; }>; retryBrokerMessage(payload: { message_id: string; consumer_tag: string; }, auth: IRequestExtension): Promise; failBrokerMessage(payload: { message_id: string; error: string; }, auth: IRequestExtension): Promise; queryBrokerMessages(payload: { product_tag: string; env: string; broker_tag: string; topic_tag?: string; producer_tag?: string; consumer_tag?: string; status?: string; start_date?: string; end_date?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ messages: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; getBrokerProducers(payload: { product_tag: string; env: string; broker_tag: string; topic_tag?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ producers: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; getBrokerConsumers(payload: { product_tag: string; env: string; broker_tag: string; topic_tag?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ consumers: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; getBrokerDeadLetters(payload: { product_tag: string; env: string; broker_tag: string; topic_tag?: string; consumer_tag?: string; start_date?: string; end_date?: string; page?: number; limit?: number; }, auth: IRequestExtension): Promise<{ deadLetters: any[]; total: number; page: number; limit: number; hasMore: boolean; }>; getBrokerComprehensiveStats(payload: { product_tag: string; env: string; broker_tag: string; }, auth: IRequestExtension): Promise; getBrokerDashboard(payload: { product_tag: string; env: string; broker_tag: string; }, auth: IRequestExtension): Promise; }