import { type ConversationWindowBootstrap } from './conversation-window-bootstrap.js'; import { type ArkmeTimelineMemberJoinEvent } from '../unified-chat-timeline.js'; export { arkmeClipboardFiles, arkmeClipboardImageFiles } from './clipboard-files.js'; export { ArkmeConversationMessageMergeOwner as ArkmeConfirmedSendRetentionOwner } from './conversation-message-merge.js'; import { type ReactNode } from 'react'; import type { ArkmeAuthSnapshot, ArkmeSourceItem, ArkmeTimelineItem, ArkmeUserProfile, ArkmeConversationMemberItem, ArkmeConversationMemberJoinEvent, ArkmeConversationMemberJoinPerson, ArkmeGroupAvatarFallback } from '../types.js'; import type { ArkmeMemberEvent } from '../types.js'; import { type ArkmeLoginMode } from './ArkmeLogin.js'; import { type ArkmeBotAvatarIdentity } from './ArkmeBotAvatarActions.js'; import { type ArkmeSelfSourcesResolution } from './ArkmeTopicDirectoryPopover.js'; import { type ArkmeNavigationProps } from './ArkmeVirtualWorkspace.js'; import { type ArkmeConversationTimelineSnapshot } from './conversation-memory-cache.js'; import { type ArkmeNotificationActivationSnapshot, type ArkmeNotificationActivationStore } from './notification-activation-store.js'; export { arkmeComposerMentionTrigger, arkmeGroupMentionCandidates, arkmeMemberForMention, arkmeMemberForMentionTarget, arkmeMemberForVisibleMention, arkmeMentionCandidateMatches, arkmeMentionCandidateKey, arkmeMentionCandidatePrimaryText, arkmePrivateMentionCandidates, } from './mention-candidates.js'; export type { ArkmeComposerMentionTrigger, ArkmeMentionCandidate } from './mention-candidates.js'; import { type ArkmeLoginTranslate } from './arkme-login-locales.js'; import { type ArkmeBackgroundSoundFailure } from './record-input-capture.js'; export { ArkmeTimelineDetailDrawer, arkmeTimelineDetailSenderText } from './ArkmeNoteDetails.js'; export declare function arkmeBackgroundSoundCaptureFailureFeedback(failure: ArkmeBackgroundSoundFailure | undefined): string; export interface ArkmeSurfaceProps { t?: ArkmeLoginTranslate; floating?: boolean; productNavigation?: boolean; conversationBootstrap?: ConversationWindowBootstrap | undefined; initialAuth?: ArkmeAuthSnapshot | undefined; currentSessionId?: string | undefined; renderSlot?: ArkmeNavigationProps['renderSlot']; productChrome?: boolean; directoryLead?: ReactNode; onCreateTask?: () => void; onActivateSurface?: () => void; ownsQrLogin?: boolean; /** Whether the visible surface owns foreground requests, timers and polling. */ active?: boolean; } export type ArkmeAuthView = 'login' | 'content'; export declare function arkmeShouldDismissAnchoredMenu(target: Node | null, menu: Pick | null, trigger: Pick | null): boolean; export declare function arkmeShouldToggleMessageSelectFromRowClick(target: EventTarget | null): boolean; export declare function arkmeAuthView(auth: ArkmeAuthSnapshot | undefined): ArkmeAuthView; export declare function arkmeLoginNeedsPhoneBinding(auth: ArkmeAuthSnapshot | undefined): boolean; export declare function arkmeAuthenticatedAccountChanged(previous: ArkmeAuthSnapshot | undefined, next: ArkmeAuthSnapshot): boolean; export declare function arkmeArkoSurfaceKey(auth: ArkmeAuthSnapshot | undefined): number | 'authenticated' | 'logged-out'; export declare function ArkmeTimelineAgentSourceBadge({ item }: { item: ArkmeTimelineItem; }): import("react").JSX.Element | null; export declare function arkmeTimelineSelfTopicSource(item: ArkmeTimelineItem, sources: readonly ArkmeSourceItem[]): ArkmeSourceItem | undefined; export declare function arkmeTimelineSelfTopicPresentation(item: ArkmeTimelineItem, currentSource: ArkmeSourceItem | undefined, sources: readonly ArkmeSourceItem[]): { topic: ArkmeSourceItem; displayLabel?: string; } | undefined; export declare function ArkmeTimelineSelfTopicBadge({ topic, displayLabel, onSelect, }: { topic: ArkmeSourceItem; displayLabel?: string; onSelect: (source: ArkmeSourceItem) => void; }): import("react").JSX.Element; export declare function arkmeShouldBeginWechat(auth: ArkmeAuthSnapshot | undefined, authView: ArkmeAuthView, loginMode: ArkmeLoginMode, agreed: boolean, qr: string, qrRequestStarted: boolean, ownsQrLogin?: boolean): boolean; export { arkmeMessageCopyText } from './message-copy-text.js'; export declare function arkmeTimelineMessageActionRef(item: ArkmeTimelineItem): string; export declare function arkmeTimelineOccurrenceKey(item: ArkmeTimelineItem): string; export declare function arkmeMessageActionMenuLabels(): readonly string[]; export declare function arkmeCanReeditTimelineMessage(item: ArkmeTimelineItem): boolean; export declare function arkmeMessageActionMenuRowCount(item?: ArkmeTimelineItem, source?: ArkmeSourceItem, selfRole?: import('../types.js').ArkmeGroupMemberRole): number; export declare function arkmeMessageSelectActionLabels(): readonly string[]; export declare function arkmeCanCopySelectedMessageText(selectedCount: number, actionBusy: boolean): boolean; export declare function arkmeSelectedTimelineItems(items: readonly ArkmeTimelineItem[], selectedIds: ReadonlySet): ArkmeTimelineItem[]; export declare function arkmeCopyTextToClipboard(value: string, signal?: AbortSignal): Promise; export declare function arkmeForwardableTargetSources(rootSources: readonly ArkmeSourceItem[], selfTarget?: ArkmeSourceItem, selectedTargetKeys?: readonly string[]): ArkmeSourceItem[]; export declare function arkmeForwardTargetVisibleSources(targets: readonly ArkmeSourceItem[], keyword: string): ArkmeSourceItem[]; export declare function arkmeConversationJoinEventsInLoadedWindow(events: readonly ArkmeConversationMemberJoinEvent[], items: readonly ArkmeTimelineItem[], hasMore: boolean): ArkmeConversationMemberJoinEvent[]; export declare function arkmeMemberJoinDisplayName(person: ArkmeConversationMemberJoinPerson, maxCount: number): string; export declare function arkmeMemberJoinTimeLabel(value: number, nowMillis?: number): string; export declare function arkmeVisibleMemberJoinInvitees(event: Pick): ArkmeConversationMemberJoinPerson[]; export declare function arkmeSourceDestinationLabel(source: ArkmeSourceItem | undefined): string; export interface ArkmeAccountSelfSourcesResolution { userId: number; resolution: ArkmeSelfSourcesResolution; } export declare function arkmeAggregateSourceForUser(userId: number | undefined, state: ArkmeAccountSelfSourcesResolution | undefined): ArkmeSourceItem | undefined; export declare function arkmeSendToSelfRootSource(sources: readonly ArkmeSourceItem[]): ArkmeSourceItem | undefined; export declare function arkmeRealtimeDeltaCoversTimelineGap(cached: ArkmeConversationTimelineSnapshot | undefined, deltaItems: readonly ArkmeTimelineItem[], latestSequence: number | undefined): boolean; export declare function aiPolishStatus(item: ArkmeTimelineItem): string; export declare function arkmeTimelineSenderName(item: ArkmeTimelineItem, profile?: ArkmeUserProfile): string; export declare function arkmeTimelineAvatarRef(item: ArkmeTimelineItem, profile?: Pick): string | undefined; /** Every conversation timeline shows avatars, including the aggregate and personal topic views. */ export declare function arkmeSourceShowsMessageAvatars(source: ArkmeSourceItem | undefined): boolean; export declare function MessageAvatar(props: { senderKind?: 'human' | 'bot' | undefined; avatarRef?: string; fallback?: ArkmeGroupAvatarFallback; label?: string; member?: ArkmeConversationMemberItem; profileEnabled: boolean; hoverEnabled?: boolean | undefined; onOpen: (member: ArkmeConversationMemberItem) => void; onContextMenu: (member: ArkmeConversationMemberItem, anchorRect: DOMRect) => void; onHover?: ((member: ArkmeConversationMemberItem, anchor: HTMLElement) => void) | undefined; bot?: ArkmeBotAvatarIdentity | undefined; onBotHover?: ((bot: ArkmeBotAvatarIdentity, anchor: HTMLElement) => void) | undefined; onBotMenu?: ((bot: ArkmeBotAvatarIdentity, anchorRect: DOMRect) => void) | undefined; onBotOpen?: ((bot: ArkmeBotAvatarIdentity) => void) | undefined; }): import("react").JSX.Element; export declare function ArkmeMemberJoinNotice(props: { rowId: string; event: ArkmeTimelineMemberJoinEvent; membersByRef: ReadonlyMap; startsGroup?: boolean; onOpenMember: (member: ArkmeConversationMemberItem) => void; }): import("react").JSX.Element; export declare function ArkmeMemberLeaveNotice(props: { rowId: string; event: ArkmeMemberEvent; onOpen: (event: ArkmeMemberEvent) => void; }): import("react").JSX.Element; export declare function ArkmeTimelineMessageHeader({ item, profile, member, }: { item: ArkmeTimelineItem; profile?: ArkmeUserProfile; member?: Pick; presentationIsMe?: boolean; }): import("react").JSX.Element; export declare function arkmeForwardTargetTimeLabel(value: number, now?: number): string; export declare function arkmeForwardPreviewTitle(items: readonly ArkmeTimelineItem[], source?: ArkmeSourceItem): string; export declare function arkmeForwardPreviewSubtitle(items: readonly ArkmeTimelineItem[]): string; export declare const ARKME_NOTIFICATION_BLOCKING_OVERLAY_SELECTOR: string; export declare const ARKME_NOTIFICATION_OVERLAY_OBSERVER_TIMEOUT_MILLIS = 30000; interface ArkmeNotificationOverlayObserver { observe(target: Node, options: MutationObserverInit): void; disconnect(): void; } export declare function observeArkmeNotificationBlockingOverlayChanges(target: Node, onChange: () => void, options?: { createObserver?(callback: () => void): ArkmeNotificationOverlayObserver; setTimer?(callback: () => void, delay: number): ReturnType; clearTimer?(timer: ReturnType): void; }): () => void; export declare function arkmeNotificationBlockingOverlayPresent(scope: Pick): boolean; export declare function arkmeNotificationConversationPanelMatches(panel: Pick | null, activeConversation: boolean, sourceIdentity: string, targetIdentity: string): boolean; export declare function takeArkmeNotificationSurfaceCommit({ store, revision, targetIdentity, activeConversation, sourceIdentity, panel, documentScope, }: { store: ArkmeNotificationActivationStore; revision: number; targetIdentity: string; activeConversation: boolean; sourceIdentity: string; panel: Pick | null; documentScope: Pick; }): ArkmeNotificationActivationSnapshot | undefined; export declare function ArkmeSurface({ t, floating, initialAuth, conversationBootstrap, currentSessionId, renderSlot, productChrome, productNavigation, directoryLead, onCreateTask, onActivateSurface, ownsQrLogin, active, }?: ArkmeSurfaceProps): import("react").JSX.Element; //# sourceMappingURL=ArkmeSidebar.d.ts.map