import type { WorldPublishOrigin } from '../world-publish-source.js'; import { type MouseEvent as ReactMouseEvent } from 'react'; import type { ArkmeSourceItem, ArkmeSourceSendResult } from '../types.js'; export interface ArkmeMessageSelectionItem { id: string; copyText: string; } export interface ArkmeMessageActionViewItem extends ArkmeMessageSelectionItem { worldOrigin?: WorldPublishOrigin; actionRef: string; conversationRef: string; copyLinkAvailable: boolean; forwardAvailable: boolean; } export declare function arkmeMessageActionConversationRef(items: readonly ArkmeMessageActionViewItem[]): string | undefined; export interface ArkmeMessageActionRequestIdentityState { selectionKey: string; ids: Record; } export declare function arkmeMessageActionSelection(items: readonly ArkmeMessageActionViewItem[], selectedIds: ReadonlySet): ArkmeMessageActionViewItem[]; export declare function arkmeToggleMessageActionSelection(selectedIds: ReadonlySet, itemId: string, limit?: number): Set | undefined; export declare function arkmeMessageActionCopyText(item: ArkmeMessageSelectionItem): string; export declare function arkmeMessageActionStableRequestIds(current: ArkmeMessageActionRequestIdentityState | undefined, selectionKey: string, targetSourceRefs: readonly string[]): ArkmeMessageActionRequestIdentityState; export declare function useArkmeMessageActions(input: { scopeKey: string; /** Personal/chat records use the established source operations, distinct from Agent/Bot refs. */ sourceActions?: boolean; items: readonly ArkmeMessageActionViewItem[]; /** Visible selection facts, independent of the signed action capabilities. */ selectionItems?: readonly ArkmeMessageSelectionItem[]; /** Only owners with an explicit deletion flow expose this action. */ deleteSelection?: { disabledReason(items: readonly ArkmeMessageSelectionItem[]): string | undefined; onRequest(items: readonly ArkmeMessageSelectionItem[]): void; }; onForwarded?: (target: ArkmeSourceItem, result: ArkmeSourceSendResult) => void; }): { copyLink: (items: readonly ArkmeMessageActionViewItem[]) => Promise; openForward: (items: readonly ArkmeMessageActionViewItem[]) => Promise; busy: "forward" | "copy-link" | undefined; dialogOpen: boolean; dismissOverlay: () => boolean; selectMany: (keys: ReadonlySet) => void; canSelectMany: boolean; selecting: boolean; selectedIds: Set; openMenu: (item: ArkmeMessageActionViewItem, event: ReactMouseEvent) => void; toggle: (item: ArkmeMessageSelectionItem) => void; overlay: import("react").JSX.Element; selectionBar: import("react").JSX.Element | undefined; }; //# sourceMappingURL=ArkmeMessageActions.d.ts.map