import { type ReactNode } from 'react'; import type { ArkmeConversationMemberItem, ArkmeSourceItem, ArkmeSourceMessageExtendResult, ArkmeSourceKind, ArkmeSelfRole, ArkmeTimelineItem, ArkmeUserProfile } from '../types.js'; interface DetailSelfRoleSelection { accountKey: string; userId: number; selectedRole?: ArkmeSelfRole | undefined; selfAvatarRef?: string | undefined; onSelect(role?: ArkmeSelfRole): void; } export declare function arkmeTimelineDetailSenderText(item: ArkmeTimelineItem, members?: readonly ArkmeConversationMemberItem[]): string; export declare function ArkmeTimelineDetailDrawer({ item, sourceBadge, sourceRef, sourceIdentityKey, sourceKind, selfTopicPath, selfTopicSource, onOpenSelfTopic, onOpenExtensionParent, onBackToExtension, currentSelfProfile, conversationMembers, canExtend, showOriginal, onClose, onToggleOriginal, shareWebsite, onMessageCopyLinkOpen, onExtensionSent, onToast, onOpenPrivateChatMember, selfRoleSelection, messageCreationBlocked, messageCreationRestriction, }: { sourceBadge?: ReactNode; item: ArkmeTimelineItem; sourceRef?: string | undefined; sourceIdentityKey?: string | undefined; canExtend?: boolean; sourceKind?: ArkmeSourceKind | undefined; selfTopicPath?: string | undefined; selfTopicSource?: ArkmeSourceItem | undefined; onOpenSelfTopic?: ((source: ArkmeSourceItem) => void) | undefined; onOpenExtensionParent?: ((parent: NonNullable) => void) | undefined; onBackToExtension?: (() => void) | undefined; currentSelfProfile?: ArkmeUserProfile | undefined; selfRoleSelection?: DetailSelfRoleSelection | undefined; conversationMembers?: readonly ArkmeConversationMemberItem[] | undefined; showOriginal: boolean; onClose: () => void; onToggleOriginal: () => void; shareWebsite?: string; onMessageCopyLinkOpen?: (sid: string) => void; onExtensionSent?: (result: ArkmeSourceMessageExtendResult) => void; onToast?: (message: string) => void; onOpenPrivateChatMember?: (member: ArkmeConversationMemberItem) => void; messageCreationBlocked?: boolean; messageCreationRestriction?: string; }): import("react").JSX.Element; /** * Which account, if any, a forwarded row may start a private chat with. A * transcript speaker label is never an account identity even when it reuses the * sender's name and photo, and a surface that cannot navigate gets no entry. */ export declare function arkmeForwardSenderChatPeerId(senderUserId: number | undefined, segment: boolean, canNavigate: boolean): number | undefined; export declare function ForwardRecordsDetail({ item, onClose, sourceBadge, onPrivateChatOpened }: { item: ArkmeTimelineItem; onClose: () => void; sourceBadge?: ReactNode; /** Opens a resolved snapshot sender's private chat, shared by every entry path. */ onPrivateChatOpened?: ((source: ArkmeSourceItem) => void) | undefined; }): import("react").JSX.Element | null; export {}; //# sourceMappingURL=ArkmeNoteDetails.d.ts.map