import { type ConversationWordsQuery } from './conversation-word-frequency.js'; export interface ConversationActivityBucket { hour: number; weekday: number | null; messages: number; systemMessages: number; participants: number; } export interface ConversationActivityResult { id: string; updatedAt: number; fromAt: number | null; toAt: number | null; totalMessages: number; systemMessages: number; activeDays: number; participants: number; hourly: ConversationActivityBucket[]; weekly: ConversationActivityBucket[]; } export interface ConversationActivityState { supported: boolean; stale: boolean; result: ConversationActivityResult | null; progress: { completed: number; total: number; } | null; } export interface ConversationActivitySelection { hour: number; weekday: number | null; } export declare const activityKinds: readonly ["text", "image", "voice", "video", "file", "call", "mixed", "card", "system", "other"]; export interface ConversationActivityMessage { key: string; sourceRef: string | null; senderName: string; preview: string; sentAt: number; kind: typeof activityKinds[number]; } export interface ConversationActivityMessages { items: ConversationActivityMessage[]; total: number; nextCursor: string | null; } export declare const unavailableConversationActivity: () => ConversationActivityState; export declare function parseActivitySelection(value: unknown): ConversationActivitySelection; export declare function assertActivityEnvelope(v: Record, q: ConversationWordsQuery, sessionUid: string): void; export declare function parseConversationActivity(value: unknown, q: ConversationWordsQuery, sessionUid: string): ConversationActivityState; /** Validate the message's actual local time, not its upload/sync time. */ export declare function activityMessageMatches(at: number, q: ConversationWordsQuery, selection: ConversationActivitySelection): boolean; export declare function parseActivityMessages(value: unknown, q: ConversationWordsQuery, sessionUid: string, resultId: string, selection: ConversationActivitySelection): ConversationActivityMessages; //# sourceMappingURL=conversation-activity.d.ts.map