import type { ArkmeInterwovenDetail, ArkmeInterwovenMention, ArkmeMemberEvent, ArkmeRelatedQuickNoteItem, ArkmeSourceItem, ArkmeTimelineItem } from '../types.js'; import { type ArkmeRelatedDrawerView, type ArkmeRelatedQuickNoteDetailState, type ArkmeRelatedQuickNotesLoadState } from './ArkmeRelatedQuickNotes.js'; export type ArkmeConversationRow = { kind: 'message'; id: string; occurredAtMillis: number; item: ArkmeTimelineItem; } | { kind: 'moment'; id: string; occurredAtMillis: number; item: ArkmeInterwovenMention; } | { kind: 'member-event'; id: string; occurredAtMillis: number; item: ArkmeMemberEvent; }; /** Pure deterministic merge; each authority keeps its own identity and duplicate policy. */ export declare function mergeConversationRows(messages: readonly ArkmeTimelineItem[], moments: readonly ArkmeInterwovenMention[], memberEvents?: readonly ArkmeMemberEvent[]): ArkmeConversationRow[]; /** Match the desktop prelude policy while preserving each card's identity. */ export declare function projectInterwovenWindow(messages: readonly ArkmeTimelineItem[], moments: readonly ArkmeInterwovenMention[], hasMoreMessages: boolean, includeFromMillis?: number): { prelude: ArkmeInterwovenMention[]; inline: ArkmeInterwovenMention[]; }; export declare function ArkmeInterwovenPrelude({ moments, onOpen }: { moments: readonly ArkmeInterwovenMention[]; onOpen: (moment: ArkmeInterwovenMention) => void; }): import("react").JSX.Element; export declare function interwovenTimeLabel(value: number, now?: number): string; export declare function interwovenDetailTimeLabel(value: number): string; export interface InterwovenContentPart { text: string; mention: boolean; } /** Keeps mention styling presentational; business identity still comes only from the owner DTO. */ export declare function interwovenContentParts(text: string): InterwovenContentPart[]; /** Returns a target only when the already-authorized directory has one exact group match. */ export declare function resolveInterwovenGroupTarget(sources: readonly ArkmeSourceItem[], groupName: string): ArkmeSourceItem | undefined; export declare function ArkmeInterwovenMentionCard({ moment, rowId, onOpen, highlighted, }: { moment: ArkmeInterwovenMention; rowId?: string; onOpen: (moment: ArkmeInterwovenMention) => void; highlighted?: boolean; }): import("react").JSX.Element; export type ArkmeInterwovenDetailViewState = { kind: 'loading'; } | { kind: 'success'; detail: ArkmeInterwovenDetail; } | { kind: 'error'; message: string; }; export declare function ArkmeInterwovenDetailAside({ state, relatedView, relatedState, relatedDetailState, onClose, onRetry, onOpenGroup, onOpenRelated, onSelectRelated, onBackRelated, onRetryRelated, onRetryRelatedDetail, sourceRef, shareWebsite, }: { state: ArkmeInterwovenDetailViewState; relatedView?: ArkmeRelatedDrawerView; relatedState?: ArkmeRelatedQuickNotesLoadState; relatedDetailState?: ArkmeRelatedQuickNoteDetailState; onClose: () => void; onRetry: () => void; onOpenGroup?: () => void; onOpenRelated?: () => void; onSelectRelated?: (item: ArkmeRelatedQuickNoteItem) => void; onBackRelated?: () => void; onRetryRelated?: () => void; onRetryRelatedDetail?: (item: ArkmeRelatedQuickNoteItem) => void; sourceRef?: string; shareWebsite?: string; }): import("react").JSX.Element; //# sourceMappingURL=interwoven-moments.d.ts.map