@arbidocs/react 0.5.76 → 0.5.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +37 -7
  2. package/dist/artifacts/index.cjs +10 -10
  3. package/dist/artifacts/index.js +3 -3
  4. package/dist/calls/livekit/index.cjs +42 -42
  5. package/dist/calls/livekit/index.js +3 -3
  6. package/dist/{chunk-2MECTZLS.js → chunk-4QON6LSH.js} +4 -4
  7. package/dist/{chunk-2MECTZLS.js.map → chunk-4QON6LSH.js.map} +1 -1
  8. package/dist/{chunk-RDERZWMO.cjs → chunk-5IN5OGBT.cjs} +33 -33
  9. package/dist/{chunk-RDERZWMO.cjs.map → chunk-5IN5OGBT.cjs.map} +1 -1
  10. package/dist/{chunk-O2HDONQE.js → chunk-5UJ4ZKJN.js} +3 -3
  11. package/dist/{chunk-O2HDONQE.js.map → chunk-5UJ4ZKJN.js.map} +1 -1
  12. package/dist/{chunk-33PVGKXT.js → chunk-DLBGBIAM.js} +231 -69
  13. package/dist/chunk-DLBGBIAM.js.map +1 -0
  14. package/dist/{chunk-PMHFLOXY.cjs → chunk-IZ3B62EN.cjs} +49 -49
  15. package/dist/{chunk-PMHFLOXY.cjs.map → chunk-IZ3B62EN.cjs.map} +1 -1
  16. package/dist/{chunk-6RSVGLQY.cjs → chunk-L2P2X6LH.cjs} +264 -98
  17. package/dist/chunk-L2P2X6LH.cjs.map +1 -0
  18. package/dist/{chunk-MWW54PY6.cjs → chunk-RW3URTNE.cjs} +20 -20
  19. package/dist/{chunk-MWW54PY6.cjs.map → chunk-RW3URTNE.cjs.map} +1 -1
  20. package/dist/{chunk-AOEJ744V.js → chunk-TK7ERJPE.js} +5 -2
  21. package/dist/{chunk-AOEJ744V.js.map → chunk-TK7ERJPE.js.map} +1 -1
  22. package/dist/{chunk-GQAXAZN7.cjs → chunk-U4PWVSCT.cjs} +5 -2
  23. package/dist/{chunk-GQAXAZN7.cjs.map → chunk-U4PWVSCT.cjs.map} +1 -1
  24. package/dist/{chunk-JHN4PKWX.js → chunk-YJEZEPUB.js} +3 -3
  25. package/dist/{chunk-JHN4PKWX.js.map → chunk-YJEZEPUB.js.map} +1 -1
  26. package/dist/document-tools/core.cjs +82 -82
  27. package/dist/document-tools/core.d.cts +2 -2
  28. package/dist/document-tools/core.d.ts +2 -2
  29. package/dist/document-tools/core.js +2 -2
  30. package/dist/document-tools/index.cjs +82 -82
  31. package/dist/document-tools/index.d.cts +1 -1
  32. package/dist/document-tools/index.d.ts +1 -1
  33. package/dist/document-tools/index.js +2 -2
  34. package/dist/index.cjs +1139 -929
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.cts +376 -556
  37. package/dist/index.d.ts +376 -556
  38. package/dist/index.js +238 -48
  39. package/dist/index.js.map +1 -1
  40. package/dist/{query-keys.d-BFKQVevT.d.ts → query-keys.d-Dm0NL9nr.d.cts} +3 -0
  41. package/dist/{query-keys.d-BFKQVevT.d.cts → query-keys.d-Dm0NL9nr.d.ts} +3 -0
  42. package/package.json +5 -3
  43. package/dist/chunk-33PVGKXT.js.map +0 -1
  44. package/dist/chunk-6RSVGLQY.cjs.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { b as ArbiHostConnection, H as HostConfigRecord, c as ArbiHostProps, T as ThreadBinding, e as MentionCandidate, g as MessageMentionRef, o as SearchStatus, m as SearchSession, l as NotifyVariant, A as AppNotification } from './index.d-Deqz5-pF.js';
2
2
  export { C as ChatArtifact, D as DEFAULT_NOTIFY_TONE, L as LEGACY_THREAD_DOCUMENTS_KEY, M as MAX_SESSION_NOTIFICATIONS, d as MENTION_HREF_PREFIX, f as MentionKind, N as NotificationBell, h as NotificationBellProps, i as NotificationBellTriggerState, j as NotifyConfig, k as NotifyOptions, O as OpenDocumentRegistration, S as SavedDocumentInput, n as SearchSessionState, p as ThreadBindingRow, q as Toaster, r as TurnDocumentInput, U as UNBOUND, W as WordDocumentKind, s as bindingOfRow, t as clearChatArtifacts, u as clearSearchSession, v as configureNotify, w as createSearchSession, x as extractMentions, y as filterMentionCandidates, z as findMentionQuery, B as forgetLegacyThreadDocuments, E as getChatArtifact, F as getChatArtifacts, G as hasMessageBody, I as insertMention, J as latestThreadOfDocument, K as linkMentions, P as mentionFromHref, Q as notify, R as openDocumentId, V as opensInWord, X as persistNotifyHistory, Y as persistSearchSession, Z as readLegacyThreadDocuments, _ as recordChatArtifact, $ as requestSearch, a0 as savedDocumentIdFor, a1 as seedNotifications, a2 as selectUnread, a3 as sharedSearchSession, a4 as takeDocumentForTurn, a5 as takePendingSearch, a6 as toMessageMentions, a7 as useChatArtifact, a8 as useConversationChatArtifact, a9 as useHostConfigRecord, aa as useMessageChatArtifact, ab as useNotify, ac as useOpenDocumentId, ad as useRegisterOpenDocument, ae as useTurnDocumentId } from './index.d-Deqz5-pF.js';
3
3
  import * as _arbidocs_sdk_browser from '@arbidocs/sdk/browser';
4
- import { LoginProfile, Arbi, EventCreateBody, ScopedTarget, EventPatchBody, RespondParams, ArtifactEvent, MailDraftSSEEvent, QuotaExceeded, ProbeAnswerEvent, AskRequest, AgentStepEvent, ChatMessage, OutputItemDone, UserInputRequestEvent, MessageQueuedEvent, UserMessageEvent, SSEStreamStartData, MessageMetadataPayload, DeferredInterjectionEvent, AgentControlStateEvent, TokenBudgetContext, ConversationResponse, Thread, SSEStreamResult, AskHandlers, TagListQuery, workspaces, ListFactsOptions, UpdateFactRequest, FactSearchResponse, FactSearchRequest, StepActionRequest, UpdateConversationRequest, UpdateWorkflowRequest, DatabaseRow, tags, TagResponse, TagKind, TagKindSchema, TagChange, TagFieldDefinition, ProjectEventKind, ProjectUpdateRequest, ProjectResponse, ProjectCreateOptions, ProjectAddonKind, ProjectPlanChangeRequest, ProjectCheckoutRequest, ProjectQuoteRequest, ProjectAddonSettingsRequest, ProjectNextPeriodAddonsRequest, contacts, PersonalConnectionInput, settings, account, ListEventsParams, CalendarWindow, OverlayLayerName, RoomCreateBody, CalendarEvent, FindTimeParams, RoomQuery, ShareRole, CalendarUpdate, OAuthAccountKind, CalendarAccount, CalDavConnectBody, calls, SearchChunk, chats, UploadDocumentsOptions, UploadResult } from '@arbidocs/sdk/browser';
4
+ import { LoginProfile, Arbi, EventCreateBody, ScopedTarget, EventPatchBody, RespondParams, ArtifactEvent, MailDraftSSEEvent, QuotaExceeded, ProbeAnswerEvent, AskRequest, AgentStepEvent, ChatMessage, OutputItemDone, UserInputRequestEvent, MessageQueuedEvent, UserMessageEvent, SSEStreamStartData, MessageMetadataPayload, DeferredInterjectionEvent, AgentControlStateEvent, TokenBudgetContext, ConversationResponse, Thread, SSEStreamResult, AskHandlers, TagListQuery, workspaces, ListFactsOptions, UpdateFactRequest, FactSearchResponse, FactSearchRequest, StepActionRequest, UpdateConversationRequest, UpdateWorkflowRequest, DatabaseRow, tags, TagResponse, TagKind, TagKindSchema, TagChange, TagFieldDefinition, ProjectEventKind, ProjectUpdateRequest, ProjectResponse, ProjectCreateOptions, ProjectAddonKind, ProjectPlanChangeRequest, ProjectCheckoutRequest, ProjectQuoteRequest, ProjectAddonSettingsRequest, ProjectNextPeriodAddonsRequest, contacts, PersonalConnectionInput, settings, account, ListEventsParams, CalendarWindow, OverlayLayerName, RoomCreateBody, CalendarEvent, FindTimeParams, RoomQuery, ShareRole, CalendarUpdate, OAuthAccountKind, CalendarAccount, CalDavConnectBody, calls, SearchChunk, chats, UploadDocumentsOptions, UploadResult, SupportTicketInput, SupportRating } from '@arbidocs/sdk/browser';
5
5
  export { ACCOUNT_VENDOR, AccountSyncResult, ActivityKind, ActivityResponse, AgentStepEvent, Arbi, ArbiError, ArbiOptions, ArtifactEvent, AskHandlers, AskRequest, AttendeeRead, AuthMode, BookingConfirmation, BookingPage, BookingPageWriteBody, BookingRequestBody, BridgeTokensOptions, CalDavConnectBody, CalDavProfile, CalendarAccount, CalendarAccountKind, CalendarCreateBody, CalendarEvent, CalendarRead, CalendarSettings, CalendarSettingsBody, CalendarUpdate, CalendarWindow, ConnectionModel, ConnectorCatalogEntry, ConnectorFolder, ConnectorSyncProgress, ConnectorSyncStatus, ConnectorVendorKey, ConnectorVisibilitySettings, ConversationResponse, CreateFactRequest, CreateWorkRequest, CreateWorkflowRequest, DEFAULT_AI_USD_PER_GBP, DRIVE_SYNC_VENDORS, Database, DatabaseColumn, DatabaseColumnWrite, DatabaseImportResult, DatabaseRow, DatabaseRowPage, DateTimeSpec, DirectModelUsage, DriveSyncProgress, DriveSyncSummary, EditScope, EventCreateBody, EventPatchBody, FactResponse, FactSearchRequest, FactSearchResponse, FindTimeParams, FreeBusyEntry, GOOGLE_VENDORS, HolidayCountry, IMANAGE_VENDORS, ImportResult, InvitationRead, ListEventsParams, LoginProfile, MAILBOX_SYNC_VENDORS, MAX_RETRIEVE_DOC_IDS, MICROSOFT_VENDORS, MessageMetadataPayload, ModelConnection, OAuthAccountKind, OutputTokensDetails, OverlayItem, OverlayLayerName, PendingAuthResponse, PersonKey, PersonalConnectionInput, PlanWorkRequest, ProductResponse, ProjectAddonKind, ProjectCheckoutRequest, ProjectInvoicesResponse, ProjectPlanChangeRequest, ProjectQuoteRequest, ProjectResponse, ProjectUsageResponse, PublicBookingError, PublicBookingPage, RespondParams, RespondPartstat, ResponseCompletedEvent, ResponseContentPartAddedEvent, ResponseCreatedEvent, ResponseFailedEvent, ResponseOutputItemAddedEvent, ResponseOutputItemDoneEvent, ResponseOutputTextDeltaEvent, ResponseOutputTextDoneEvent, ResponseUsage, RoomCreateBody, RoomQuery, RoomRead, SHAREPOINT_VENDORS, SSEStreamCallbacks, SSEStreamResult, SSEStreamStartData, ScopedTarget, SearchChunk, ShareRead, ShareRole, SkillSummary, SlackConnectionStatus, SubscribeParams, SyncTriggerResult, TaskPlan, TaxQuoteResponse, TimeSuggestion, UpdateConversationRequest, UpdateWorkflowRequest, UserConnectorEntry, UserDailyUsageResponse, UserInputRequestEvent, UserMessageEvent, WeeklyHoursSpec, WorkStatus, WorkflowAuthMode, WorkflowResponse, WorkflowRunResponse, bookPublicSlot, cancelPublicBooking, connectErrorMessage, formatGbp, formatGbpPerMillionTokens, getPublicBookingPage, isConnectorVendorVisible, isDriveSyncVendor, isMailboxSyncVendor, isSharePointVendor, usdToGbp } from '@arbidocs/sdk/browser';
6
6
  import * as _arbidocs_client from '@arbidocs/client';
7
7
  import { components, WsAuthResultMessage, WebSocketServerMessage, WsTaskUpdateMessage, WsPresenceUpdateMessage, SessionUser, SessionManager, ArbiClient, RecoveryKeyParams, CallPeer } from '@arbidocs/client';
@@ -16,7 +16,8 @@ import { M as MeetingChatRef, a as ActiveCall, W as SegmenterConfig, G as Incomi
16
16
  export { A as AUDIENCE_CHOICES, c as AudioRecorderState, d as AudioSegment, C as CALL_CAPTION_TOPIC, e as CALL_CHAT_MAX_CHARS, f as CALL_CHAT_TOPIC, g as CALL_RECORDING_TOPIC, h as CALL_TRANSCRIPTION_TOPIC, i as CALL_WEBINAR_TOPIC, j as CAPTION_MAX_CHARS, k as COMPOSITE_AUDIO_BITS_PER_SECOND, l as COMPOSITE_VIDEO_BITS_PER_SECOND, m as CallChatLine, n as CallChatPacket, o as CallSessionState, p as CaptionLine, q as CaptionPacket, r as ChatAttachmentFile, s as ChatEvent, u as ChatMessageResponse, w as ChatThreadData, y as ConversationKey, D as DEFAULT_JOIN_CHOICES, z as DEFAULT_SEGMENTER_CONFIG, B as DecryptedChatMessage, E as EMPTY_CALL_SESSION, H as HISTORY_LIMIT, F as HistoryMessage, I as INITIAL_SEGMENTER_STATE, L as LIVE_SEGMENTER, K as LiveCall, O as NewActiveCall, P as OpenQuestion, Q as PendingKnock, R as PendingPart, S as READ_ONLY_MEETING_TEXT, T as RECORDING_CHUNK_MS, U as SEGMENT_ID_PATTERN, V as SPEAKER_AUDIO_BITS_PER_SECOND, X as SegmenterEvent, Y as SegmenterState, Z as TrackUploader, _ as TrackUploaderOptions, $ as TranscriptSegment, a0 as UPLOAD_ATTEMPTS, a1 as UPLOAD_BACKOFF_MS, a2 as UploaderDeps, a3 as UseAudioRecorderOptions, a4 as UseAudioRecorderResult, a5 as WebinarPacket, a6 as appendToThread, a7 as applyAgentDmStatus, a8 as applyChatEvent, a9 as applyChatMessage, aa as applyChatRead, ab as applyChatUpdated, ac as buildMeetingChatBody, ad as cachedChat, ae as cachedChats, af as callMemberKeys, ag as callSession, ah as chatByExtId, ai as chatHasLiveCall, aj as chatLiveCallId, ak as clearMeetingChatCache, al as clearTrackUploaders, am as conversationKeyForCall, an as decodeCallChatPacket, ao as decodeCaptionPacket, ap as decryptPart, aq as encodeCallChatPacket, ar as encodeCaptionPacket, as as encryptPart, at as ensureMeetingChat, au as flushSegmenter, av as getOpenChat, aw as isRecordingOver, ax as isRetryable, ay as knownMeetingChat, az as levelFromRms, aA as loadMeetingHistory, aB as markRejoining, aC as meetingChatRefFrom, aD as meetingRefForCall, aE as mergeChatLines, aF as myChatId, aG as newPacketId, aH as newSegmentId, aI as newTrackKey, aJ as nextSeqAfter, aK as openQuestion, aL as parseWebinarPacket, aM as partOffsetMs, aN as persistMeetingMessage, aO as persistTranscriptSegment, aP as rejoinAsAudience, aQ as removeChat, aR as resetCallSession, aS as resolveMeetingChat, aT as sealQuestionText, aU as setOpenChat, aV as stepSegmenter, aW as storeTranscriptSegment, aX as threadHasLiveCall, aY as threadLiveCallId, aZ as threadTranscriptText, a_ as trackUploaderFor, a$ as transcriptPersistRole, b0 as unwrapTrackKey, b1 as upsertChat, b2 as useAudioRecorder, b3 as useCallSession, b4 as wrapTrackKey } from './useAudioRecorder.d-DpDeeeAZ.js';
17
17
  import * as zustand from 'zustand';
18
18
  import * as _tanstack_query_core from '@tanstack/query-core';
19
- export { a as arbiMutationKeys, b as arbiQueryKeys, c as calendarQueryKeys, d as callQueryKeys, e as connectorQueryKeys, i as isUnderQueryKey, m as mailQueryKeys } from './query-keys.d-BFKQVevT.js';
19
+ export { a as arbiMutationKeys, b as arbiQueryKeys, c as calendarQueryKeys, d as callQueryKeys, e as connectorQueryKeys, i as isUnderQueryKey, m as mailQueryKeys } from './query-keys.d-Dm0NL9nr.js';
20
+ import { PersistQueryClientOptions } from '@tanstack/react-query-persist-client';
20
21
  import { VerificationResult } from '@didit-protocol/sdk-web';
21
22
  import { LucideIcon } from 'lucide-react';
22
23
  import { Components } from 'react-markdown';
@@ -781,9 +782,9 @@ declare function mailJson<T>(fetch: MailFetch, path: string, init?: RequestInit)
781
782
  /** A client over `fetch`; `overrides` replace any of its reads or add the optional extras. */
782
783
  declare function createMailClient(fetch: MailFetch, overrides?: Partial<MailClient>): MailClient;
783
784
  /**
784
- * The default client: the `Arbi` session's mail transport. The native inbox is unlocked with the
785
- * signed-in user's keys before each read (so mail that arrived since is readable too); a connected
786
- * account needs no unlock from here.
785
+ * The default client: the `Arbi` session's mail transport (`arbi.mail`). The native inbox is
786
+ * unlocked with the signed-in user's keys before each read (so mail that arrived since is readable
787
+ * too); unlocking a connected account bridges its connector tokens or its sealed credentials.
787
788
  */
788
789
  declare function arbiMailClient(arbi: Arbi): MailClient;
789
790
  /** A picked file as an attachment (its content base64-encoded). */
@@ -1514,68 +1515,62 @@ interface ArbiChatStoreOptions {
1514
1515
  declare function createArbiChatStore({ layout, persist, draftStorage, scrollTop, user, initial, }: ArbiChatStoreOptions): ArbiChatStore;
1515
1516
 
1516
1517
  /**
1517
- * The session's selected workspace (`workspaceId`) and where it stands on the server session
1518
- * (`workspaceStatus`). `useSwitchWorkspace` moves both; a session store reads them from here.
1518
+ * The documents related to each document of a workspace. It computes a map of related documents for each document in the workspace.
1519
+ * Relationships include:
1520
+ * - Email family: parent/child via parent_ext_id (an attachment and its email, a message and its
1521
+ * mailbox archive). Versions are NOT relations: they live inside their document.
1522
+ * - Made from: derivations (a crop's source image, a redline's inputs, a redacted copy's original,
1523
+ * a production's documents) from `derived_from`, with the source version when it is not the
1524
+ * current one; and the other way round, the copies made from a document
1525
+ * - Exact duplicates (same content_hash / fingerprint)
1526
+ * - Near-duplicates (from similarity API)
1519
1527
  *
1520
- * The selection is kept per tab (sessionStorage), so a reload stays in the workspace and each tab
1521
- * can be in a different one; a new sign-in starts with none ({@link ArbiWorkspaceStore.reset}).
1522
- * The status is never kept: after a reload the server session is new, and
1523
- * `useOpenSelectedWorkspace` opens the kept selection again.
1528
+ * Returns a stable Map<docExtId, RelatedDocs> recomputed only when
1529
+ * the documents array or similarity data changes.
1524
1530
  */
1525
1531
 
1526
- /** Where the selection is kept across reloads. */
1527
- interface ArbiWorkspaceStorage {
1528
- load(): string | null;
1529
- save(workspaceId: string | null): void;
1530
- }
1531
- /** The selection and its status. */
1532
- interface ArbiWorkspaceState {
1533
- workspaceId: string | null;
1534
- workspaceStatus: ArbiWorkspaceStatus;
1535
- }
1536
- interface ArbiWorkspaceStore {
1537
- getState(): ArbiWorkspaceState;
1538
- subscribe(listener: () => void): () => void;
1539
- setWorkspaceId(workspaceId: string | null): void;
1540
- setWorkspaceStatus(status: ArbiWorkspaceStatus): void;
1541
- /** No workspace, closed (a sign-in or sign-out: the next person starts on the workspace list). */
1542
- reset(): void;
1543
- }
1544
- interface ArbiWorkspaceStoreOptions {
1545
- storage?: ArbiWorkspaceStorage;
1546
- /** The selection to start with instead of the kept one. */
1547
- workspaceId?: string | null;
1548
- }
1549
- declare function createArbiWorkspaceStore({ storage, workspaceId, }?: ArbiWorkspaceStoreOptions): ArbiWorkspaceStore;
1550
- /** The sessionStorage key of the selection (per tab). */
1551
- declare const WORKSPACE_STORAGE_KEY = "arbi_workspace_id";
1552
- /** The localStorage key of when each workspace was last opened (per browser). */
1553
- declare const WORKSPACE_LAST_OPENED_KEY = "arbi_workspace_last_opened";
1554
- interface BrowserWorkspaceStorageOptions {
1555
- /** Default {@link WORKSPACE_STORAGE_KEY}. */
1556
- key?: string;
1557
- /** Default {@link WORKSPACE_LAST_OPENED_KEY}. */
1558
- lastOpenedKey?: string;
1532
+ interface RelatedDocs<D extends WorkspaceDocument = WorkspaceDocument> {
1533
+ /** The email / mailbox archive this document was extracted from. */
1534
+ parent?: D;
1535
+ /** Attachments: documents extracted from this one. */
1536
+ children: D[];
1537
+ /** Documents this one was made from (crop, redline, redacted copy); not the previous version. */
1538
+ madeFrom: D[];
1539
+ /** Documents made from this one (a redacted or annotated copy, a production, a crop). */
1540
+ copies: D[];
1541
+ /** How each made-from / copy document is related, by its id (a `derived_from` role). */
1542
+ roles: Record<string, string>;
1543
+ /**
1544
+ * The version of a made-from document this one was made from, by its id — only when that is
1545
+ * not the source's current version (the copy was made from an older version).
1546
+ */
1547
+ versions?: Record<string, number>;
1548
+ duplicates: D[];
1549
+ similar: Array<{
1550
+ doc: D;
1551
+ similarity: number;
1552
+ }>;
1559
1553
  }
1554
+ type RelatedDocsMap<D extends WorkspaceDocument = WorkspaceDocument> = Map<string, RelatedDocs<D>>;
1555
+ /** Count total related documents for a given entry */
1556
+ declare function getRelatedTotal(related: RelatedDocs<WorkspaceDocument>): number;
1557
+ /** Build human-readable count labels per relationship type */
1558
+ declare function getRelatedLabels(related: RelatedDocs<WorkspaceDocument>): string[];
1560
1559
  /**
1561
- * The browser's: the selection per tab (sessionStorage), and when each workspace was last opened
1562
- * per browser (localStorage, read with {@link readWorkspaceLastOpened}: "recently opened" is a
1563
- * history that outlives a tab, the selection deliberately does not).
1560
+ * Computes related documents map from workspace documents and similarity API.
1561
+ * Call this in a component that has access to the documents array.
1564
1562
  */
1565
- declare function browserWorkspaceStorage({ key, lastOpenedKey, }?: BrowserWorkspaceStorageOptions): ArbiWorkspaceStorage;
1566
- /** When each workspace was last opened in this browser (`external_id` → epoch ms). */
1567
- declare function readWorkspaceLastOpened(lastOpenedKey?: string): Record<string, number>;
1563
+ declare function useRelatedDocuments<D extends WorkspaceDocument>(documents: D[]): RelatedDocsMap<D>;
1568
1564
 
1569
1565
  /**
1570
- * The session state every block reads and writes: the selected workspace, the layout, the chat (the
1571
- * open conversation and its composer, generation per conversation, the context documents and facts)
1572
- * and the documents being viewed and selected.
1566
+ * The documents part of the session: the document being viewed and the viewer's own state, the
1567
+ * documents selected in lists, the document pinned to the chat, the drafts the user started on the
1568
+ * client (no backend record until saved), the citation picking passages in the viewer, and the
1569
+ * documents related to each one (near duplicates).
1573
1570
  *
1574
- * An {@link ArbiSessionStore} is the adapter a host gives as its configuration's `session`. It is
1575
- * made of parts ({@link composeArbiSessionStore}): the layout (`createArbiLayoutStore`), the
1576
- * workspace (`createArbiWorkspaceStore`), the chat (`createArbiChatStore`) and the documents
1577
- * ({@link createArbiDocumentSessionStore}, or a host's own over its state). Hosts without state of
1578
- * their own use {@link createArbiSessionStore}, every part in memory.
1571
+ * {@link createArbiDocumentSessionStore} keeps it in memory; given a `persist`, the place in the
1572
+ * documents (the viewed document and its page, the pinned one, the viewer's tab and text size) is
1573
+ * read back synchronously when the store is made, so a reload shows the document at once.
1579
1574
  */
1580
1575
 
1581
1576
  /** The document being viewed. */
@@ -1587,8 +1582,19 @@ interface ArbiViewingDocument {
1587
1582
  /** The passage being read, when one is. */
1588
1583
  passageId: string | null;
1589
1584
  }
1585
+ /** What to view: page and passage are left unchanged when omitted. */
1586
+ interface ArbiViewingDocumentInput {
1587
+ id: string;
1588
+ page?: number | null;
1589
+ passageId?: string | null;
1590
+ }
1590
1591
  /** A tab of the document viewer. */
1591
1592
  type ArbiViewerTab = 'pdf' | 'edit' | 'html' | 'docx' | 'xlsx' | 'versions' | 'preview';
1593
+ /** A comment of a Word document to open when it shows (a notification, a link). */
1594
+ interface ArbiDocumentCommentTarget {
1595
+ documentId: string;
1596
+ commentId: string;
1597
+ }
1592
1598
  /**
1593
1599
  * The document viewer's own state, shared with whatever opens documents (a citation opens the text
1594
1600
  * view, Compare from a documents list opens the redline): the open tab, the document compared with
@@ -1607,30 +1613,68 @@ interface ArbiDocumentViewerState {
1607
1613
  textScale: number;
1608
1614
  /** A phone user picked the PDF by hand: documents stop opening on the text view. */
1609
1615
  phonePdfChosen: boolean;
1616
+ /** The Word comment to open in the viewed document, or null. */
1617
+ commentTarget: ArbiDocumentCommentTarget | null;
1618
+ /** The open document has edits not saved yet: closing the viewer asks first. */
1619
+ unsavedChanges: boolean;
1620
+ /** The viewer shows in a window of its own (popped out). */
1621
+ detached: boolean;
1610
1622
  }
1623
+ /** What a draft is: a text document, or a capture (a voice note, a photo, a video). */
1624
+ type ArbiDraftKind = 'text' | 'audio' | 'photo' | 'video';
1611
1625
  /**
1612
- * Where the selected workspace stands on the server session: `opening` while a switch waits for
1613
- * `/open` (the host may cover the page), `open` once workspace-scoped requests may run.
1626
+ * A document the user started on the client (a blank document, a capture), with no backend record
1627
+ * until it is saved. Its id is minted here (`draft-…`), never sent to the server.
1614
1628
  */
1615
- type ArbiWorkspaceStatus = 'closed' | 'opening' | 'open';
1629
+ interface ArbiDraftDocument {
1630
+ id: string;
1631
+ title: string;
1632
+ kind: ArbiDraftKind;
1633
+ /** A text draft's Markdown. Empty for captures. */
1634
+ content: string;
1635
+ /** A capture's recording or picture, once taken; null before (and after a kind switch). */
1636
+ mediaBlob: Blob | null;
1637
+ createdAt: string;
1638
+ }
1639
+ /** A passage picked for a citation: its chunk and, when known, its page. */
1640
+ interface ArbiPickedPassage {
1641
+ chunk_id: string;
1642
+ page?: number;
1643
+ }
1644
+ /**
1645
+ * A citation picking passages in the viewer (a fact's sources, a field's), handed between the
1646
+ * viewer and the page that edits the citation.
1647
+ */
1648
+ interface ArbiPassageCitationState {
1649
+ /** The citation picking now: the document it picks in and its key (null while unsaved). */
1650
+ active: {
1651
+ documentId: string;
1652
+ key: string | null;
1653
+ } | null;
1654
+ /** Passages to light (a fact's cited passages while its sources are open). */
1655
+ highlighted: readonly string[];
1656
+ /** Passages picked in the viewer, not yet taken by the citation. */
1657
+ picked: readonly ArbiPickedPassage[];
1658
+ /** Passages unpicked in the viewer, not yet taken off the citation. */
1659
+ unpicked: readonly string[];
1660
+ }
1616
1661
  /** The documents being viewed and selected. */
1617
1662
  interface ArbiDocumentSessionState {
1618
1663
  viewingDocument: ArbiViewingDocument | null;
1619
1664
  documentViewer: ArbiDocumentViewerState;
1620
1665
  /** The documents selected in document lists. */
1621
1666
  selectedDocumentIds: readonly string[];
1667
+ /** Documents to select in the documents list once they are listed (a thread's sources). */
1668
+ documentsToSelect: readonly string[] | null;
1622
1669
  /** The document read in full with each turn (one at a time). */
1623
1670
  pinnedDocumentId: string | null;
1671
+ /** The documents related to each listed one (near duplicates), from the documents list. */
1672
+ relatedDocuments: RelatedDocsMap;
1673
+ /** The drafts started on the client, by id. */
1674
+ draftDocuments: Readonly<Record<string, ArbiDraftDocument>>;
1675
+ passageCitation: ArbiPassageCitationState;
1624
1676
  }
1625
- interface ArbiSessionState extends ArbiChatState, ArbiDocumentSessionState, ArbiLayoutState, ArbiWorkspaceState {
1626
- }
1627
- /** What to view: page and passage are left unchanged when omitted. */
1628
- interface ArbiViewingDocumentInput {
1629
- id: string;
1630
- page?: number | null;
1631
- passageId?: string | null;
1632
- }
1633
- /** The documents' changes. */
1677
+ /** The documents' changes (the session store has them). */
1634
1678
  interface ArbiDocumentSessionActions {
1635
1679
  /**
1636
1680
  * View a document, or none. Viewing another document resets the page; `page` and `passageId`
@@ -1640,15 +1684,150 @@ interface ArbiDocumentSessionActions {
1640
1684
  /** Change the document viewer's state; fields not given stay. */
1641
1685
  setDocumentViewer(change: Partial<ArbiDocumentViewerState>): void;
1642
1686
  setSelectedDocumentIds(ids: string[]): void;
1687
+ /** Ask the documents list to select these once they are listed (null: done). */
1688
+ setDocumentsToSelect(ids: string[] | null): void;
1643
1689
  setPinnedDocumentId(id: string | null): void;
1690
+ setRelatedDocuments(related: RelatedDocsMap): void;
1691
+ /** Change the passage citation; fields not given stay. */
1692
+ setPassageCitation(change: Partial<ArbiPassageCitationState>): void;
1693
+ /** Show a document the session just got (a chat writing one), on `tab`, in the viewer. */
1694
+ showNewDocument(documentId: string, tab?: ArbiViewerTab): void;
1695
+ /** Start a draft of `kind`, view it and show the viewer. Returns its id. */
1696
+ startDraftDocument(kind: ArbiDraftKind): string;
1697
+ /** Change a draft's content, capture or title. */
1698
+ updateDraftDocument(id: string, change: Partial<Pick<ArbiDraftDocument, 'content' | 'mediaBlob' | 'title'>>): void;
1699
+ /**
1700
+ * Switch a draft's kind. The capture is dropped (it belonged to the other kind), and a default
1701
+ * title follows the kind; a title the user typed stays.
1702
+ */
1703
+ setDraftDocumentKind(id: string, kind: ArbiDraftKind): void;
1704
+ /** Forget a draft (saved or discarded). */
1705
+ clearDraftDocument(id: string): void;
1644
1706
  }
1645
1707
  /** The documents part of a session store. */
1646
1708
  interface ArbiDocumentSessionStore extends ArbiDocumentSessionActions {
1647
1709
  /** The current state. The same object until something in it changes. */
1648
1710
  getState(): ArbiDocumentSessionState;
1649
1711
  subscribe(listener: () => void): () => void;
1650
- /** The workspace is being left: nothing is viewed, selected or pinned. */
1712
+ /** The workspace is being left: nothing is viewed, selected, pinned or picked. */
1651
1713
  leave(): void;
1714
+ /** Start over (sign-in, sign-out): only the reading preference (the text size) stays. */
1715
+ reset(): void;
1716
+ }
1717
+ /** What the documents part keeps across reloads. */
1718
+ interface ArbiSavedDocuments {
1719
+ version: 1;
1720
+ viewingDocument: {
1721
+ id: string;
1722
+ page: number | null;
1723
+ } | null;
1724
+ pinnedDocumentId: string | null;
1725
+ tab: ArbiViewerTab;
1726
+ textScale: number;
1727
+ }
1728
+ /**
1729
+ * Where the documents part keeps what it saves. `load` is synchronous (localStorage), so the store
1730
+ * starts from it and nothing waits; `save` may write later (the latest value wins).
1731
+ */
1732
+ interface ArbiDocumentsPersist {
1733
+ /** What was saved (any shape: it is checked), or null. Never throws. */
1734
+ load(): unknown;
1735
+ save(saved: ArbiSavedDocuments): void;
1736
+ }
1737
+ interface ArbiDocumentSessionStoreOptions {
1738
+ initial?: Partial<ArbiDocumentSessionState>;
1739
+ /** Keep the place in the documents across reloads. */
1740
+ persist?: ArbiDocumentsPersist;
1741
+ /** Show the viewer for a document the session just got (a new draft, a chat's document). */
1742
+ showViewer?: () => void;
1743
+ }
1744
+ declare const DEFAULT_DOCUMENT_VIEWER_STATE: ArbiDocumentViewerState;
1745
+ declare const EMPTY_DOCUMENT_STATE: ArbiDocumentSessionState;
1746
+ /** The next viewing document, given the current one (shared by every store implementation). */
1747
+ declare function nextViewingDocument(current: ArbiViewingDocument | null, input: ArbiViewingDocumentInput | null): ArbiViewingDocument | null;
1748
+ /**
1749
+ * Read a saved place in the documents. Each field is checked on its own: an unreadable one keeps
1750
+ * its default. Null when there is nothing readable at all.
1751
+ */
1752
+ declare function parseSavedDocuments(saved: unknown): ArbiSavedDocuments | null;
1753
+ /** What of `state` is kept across reloads. */
1754
+ declare function savedDocumentsOf(state: ArbiDocumentSessionState): ArbiSavedDocuments;
1755
+ /** The state a saved place puts back (over `base`). */
1756
+ declare function restoreSavedDocuments(base: ArbiDocumentSessionState, saved: ArbiSavedDocuments): ArbiDocumentSessionState;
1757
+ /** The documents part, in memory (and, given a `persist`, kept across reloads). */
1758
+ declare function createArbiDocumentSessionStore({ initial, persist, showViewer, }?: ArbiDocumentSessionStoreOptions): ArbiDocumentSessionStore;
1759
+
1760
+ /**
1761
+ * The session's selected workspace (`workspaceId`) and where it stands on the server session
1762
+ * (`workspaceStatus`). `useSwitchWorkspace` moves both; a session store reads them from here.
1763
+ *
1764
+ * The selection is kept per tab (sessionStorage), so a reload stays in the workspace and each tab
1765
+ * can be in a different one; a new sign-in starts with none ({@link ArbiWorkspaceStore.reset}).
1766
+ * The status is never kept: after a reload the server session is new, and
1767
+ * `useOpenSelectedWorkspace` opens the kept selection again.
1768
+ */
1769
+
1770
+ /** Where the selection is kept across reloads. */
1771
+ interface ArbiWorkspaceStorage {
1772
+ load(): string | null;
1773
+ save(workspaceId: string | null): void;
1774
+ }
1775
+ /** The selection and its status. */
1776
+ interface ArbiWorkspaceState {
1777
+ workspaceId: string | null;
1778
+ workspaceStatus: ArbiWorkspaceStatus;
1779
+ }
1780
+ interface ArbiWorkspaceStore {
1781
+ getState(): ArbiWorkspaceState;
1782
+ subscribe(listener: () => void): () => void;
1783
+ setWorkspaceId(workspaceId: string | null): void;
1784
+ setWorkspaceStatus(status: ArbiWorkspaceStatus): void;
1785
+ /** No workspace, closed (a sign-in or sign-out: the next person starts on the workspace list). */
1786
+ reset(): void;
1787
+ }
1788
+ interface ArbiWorkspaceStoreOptions {
1789
+ storage?: ArbiWorkspaceStorage;
1790
+ /** The selection to start with instead of the kept one. */
1791
+ workspaceId?: string | null;
1792
+ }
1793
+ declare function createArbiWorkspaceStore({ storage, workspaceId, }?: ArbiWorkspaceStoreOptions): ArbiWorkspaceStore;
1794
+ /** The sessionStorage key of the selection (per tab). */
1795
+ declare const WORKSPACE_STORAGE_KEY = "arbi_workspace_id";
1796
+ /** The localStorage key of when each workspace was last opened (per browser). */
1797
+ declare const WORKSPACE_LAST_OPENED_KEY = "arbi_workspace_last_opened";
1798
+ interface BrowserWorkspaceStorageOptions {
1799
+ /** Default {@link WORKSPACE_STORAGE_KEY}. */
1800
+ key?: string;
1801
+ /** Default {@link WORKSPACE_LAST_OPENED_KEY}. */
1802
+ lastOpenedKey?: string;
1803
+ }
1804
+ /**
1805
+ * The browser's: the selection per tab (sessionStorage), and when each workspace was last opened
1806
+ * per browser (localStorage, read with {@link readWorkspaceLastOpened}: "recently opened" is a
1807
+ * history that outlives a tab, the selection deliberately does not).
1808
+ */
1809
+ declare function browserWorkspaceStorage({ key, lastOpenedKey, }?: BrowserWorkspaceStorageOptions): ArbiWorkspaceStorage;
1810
+ /** When each workspace was last opened in this browser (`external_id` → epoch ms). */
1811
+ declare function readWorkspaceLastOpened(lastOpenedKey?: string): Record<string, number>;
1812
+
1813
+ /**
1814
+ * The session state every block reads and writes: the selected workspace, the layout, the chat (the
1815
+ * open conversation and its composer, generation per conversation, the context documents and facts)
1816
+ * and the documents being viewed and selected.
1817
+ *
1818
+ * An {@link ArbiSessionStore} is the adapter a host gives as its configuration's `session`. It is
1819
+ * made of parts ({@link composeArbiSessionStore}): the layout (`createArbiLayoutStore`), the
1820
+ * workspace (`createArbiWorkspaceStore`), the chat (`createArbiChatStore`) and the documents
1821
+ * ({@link createArbiDocumentSessionStore}). Hosts without state of
1822
+ * their own use {@link createArbiSessionStore}, every part in memory.
1823
+ */
1824
+
1825
+ /**
1826
+ * Where the selected workspace stands on the server session: `opening` while a switch waits for
1827
+ * `/open` (the host may cover the page), `open` once workspace-scoped requests may run.
1828
+ */
1829
+ type ArbiWorkspaceStatus = 'closed' | 'opening' | 'open';
1830
+ interface ArbiSessionState extends ArbiChatState, ArbiDocumentSessionState, ArbiLayoutState, ArbiWorkspaceState {
1652
1831
  }
1653
1832
  interface ArbiSessionStore extends ArbiLayoutActions, ArbiChatActions, ArbiDocumentSessionActions {
1654
1833
  /** The current state. The same object until something in it changes. */
@@ -1668,7 +1847,6 @@ interface ArbiSessionStore extends ArbiLayoutActions, ArbiChatActions, ArbiDocum
1668
1847
  */
1669
1848
  leaveWorkspace(): void;
1670
1849
  }
1671
- declare const DEFAULT_DOCUMENT_VIEWER_STATE: ArbiDocumentViewerState;
1672
1850
  declare const EMPTY_SESSION_STATE: ArbiSessionState;
1673
1851
  /** The viewed document itself (`doc-…`), also while one of its earlier versions is on screen. */
1674
1852
  declare const selectViewingDocumentId: (state: ArbiSessionState) => string | null;
@@ -1678,10 +1856,6 @@ declare const conversationKey: (state: Pick<ArbiChatState, "conversationId">) =>
1678
1856
  declare const selectDraft: (state: Pick<ArbiChatState, "conversationId" | "drafts">) => string;
1679
1857
  /** Whether `conversationId` is generating. */
1680
1858
  declare const selectIsGenerating: (conversationId: string | null | undefined) => (state: Pick<ArbiChatState, "generating">) => boolean;
1681
- /** The next viewing document, given the current one (shared by every store implementation). */
1682
- declare function nextViewingDocument(current: ArbiViewingDocument | null, input: ArbiViewingDocumentInput | null): ArbiViewingDocument | null;
1683
- /** The documents part in memory. */
1684
- declare function createArbiDocumentSessionStore(initial?: Partial<ArbiDocumentSessionState>): ArbiDocumentSessionStore;
1685
1859
  /** The layout actions of a session store, on its layout store. */
1686
1860
  declare function layoutActionsOf(layout: ArbiLayoutStore): ArbiLayoutActions;
1687
1861
  /** The parts a session store is made of. */
@@ -3416,6 +3590,26 @@ declare function useConversationData(): {
3416
3590
  isEmptyConversation: boolean;
3417
3591
  };
3418
3592
 
3593
+ /**
3594
+ * The open conversation's settings: its title and sharing (one PATCH of the conversation, which
3595
+ * the server resolves from the conversation's own workspace), and the model its next turn runs on.
3596
+ * The views are `ConnectedConversationSettings` in `@arbidocs/blocks`.
3597
+ */
3598
+ declare function useConversationSettings(): {
3599
+ /** No message yet: nothing to title or share. */
3600
+ isNewConversation: boolean;
3601
+ title: string;
3602
+ setTitle: React$1.Dispatch<React$1.SetStateAction<string>>;
3603
+ isOwner: boolean;
3604
+ isShared: boolean;
3605
+ isSavingTitle: boolean;
3606
+ isSharing: boolean;
3607
+ saveTitle: () => void;
3608
+ share: () => void;
3609
+ unshare: () => void;
3610
+ resetToDefaults: () => Promise<void>;
3611
+ };
3612
+
3419
3613
  /** A message the conversation branches after: the replies it has, and the one viewed. */
3420
3614
  interface BranchPoint {
3421
3615
  parentId: string;
@@ -3547,8 +3741,6 @@ interface ChatBubbleProps {
3547
3741
  /** Stable DOM anchor for scroll-to-message (a notification deep link, a
3548
3742
  * "jump to this message" action). Typically the message's external id. */
3549
3743
  id?: string;
3550
- /** Brief highlight flash — set true right after scrolling into view. */
3551
- highlighted?: boolean;
3552
3744
  /** Last bubble in a same-sender run; shows the timestamp and read receipt. */
3553
3745
  isLastOfRun?: boolean;
3554
3746
  /**
@@ -3583,7 +3775,7 @@ interface ChatBubbleProps {
3583
3775
  /** Marks the message row, including the deleted tombstone. */
3584
3776
  'data-testid'?: string;
3585
3777
  }
3586
- declare const ChatBubble: React$1.MemoExoticComponent<({ message, timestamp, isSent, deleted, read, onDelete, onCopyLink, id, highlighted, isLastOfRun, senderName, classNames, renderMessage, formatTimestamp, attachments, "data-testid": testId, }: ChatBubbleProps) => React$1.JSX.Element>;
3778
+ declare const ChatBubble: React$1.MemoExoticComponent<({ message, timestamp, isSent, deleted, read, onDelete, onCopyLink, id, isLastOfRun, senderName, classNames, renderMessage, formatTimestamp, attachments, "data-testid": testId, }: ChatBubbleProps) => React$1.JSX.Element>;
3587
3779
 
3588
3780
  /**
3589
3781
  * The `Arbi` of the host configuration (`<ArbiHost config={{ arbi }}>`).
@@ -8897,6 +9089,63 @@ interface PassageResolvers {
8897
9089
  */
8898
9090
  declare function usePassageQuotes(docIds: readonly string[] | null | undefined): PassageResolvers;
8899
9091
 
9092
+ /**
9093
+ * The query cache kept for an offline start (`createArbiQueryClient({ persist: true })`).
9094
+ *
9095
+ * Persists a *metadata-only* slice of the query cache to IndexedDB so an already signed-in user
9096
+ * can cold-start offline and still see their workspaces and documents list (and open a pinned
9097
+ * document). Deliberately conservative about what is written to disk: only the families
9098
+ * {@link isOfflineReadableArbiQuery} names; NEVER conversations, messages or document bytes (the
9099
+ * pinned bytes live separately, encrypted: `offline-documents.ts`).
9100
+ *
9101
+ * An async IndexedDB persister (idb-keyval, structured clone) rather than the JSON sync persister:
9102
+ * the robust choice for binary-capable storage.
9103
+ */
9104
+
9105
+ /** What `<PersistQueryClientProvider persistOptions>` takes for the package's offline cache. */
9106
+ type ArbiQueryPersistOptions = Omit<PersistQueryClientOptions, 'queryClient'>;
9107
+ /**
9108
+ * Hand the offline write queue to the account that is signing in. Queued edits
9109
+ * are replayed under whoever is logged in on reload, so a queue left by a
9110
+ * different account (or one whose owner was never recorded) must be discarded
9111
+ * here — otherwise another person's edit syncs, and fails, as this user.
9112
+ * The same account keeps its queue across logins.
9113
+ */
9114
+ declare function claimOfflineQueue(userExtId: string): Promise<void>;
9115
+
9116
+ /**
9117
+ * The React Query client every ARBI host shares: ARBI-frontend's own, and a blocks-only site's
9118
+ * through `defaultHost`. Call once per page, at module scope.
9119
+ *
9120
+ * const { queryClient } = createArbiQueryClient()
9121
+ * const { queryClient, persistOptions } = createArbiQueryClient({ persist: true })
9122
+ * <PersistQueryClientProvider client={queryClient} persistOptions={persistOptions}>
9123
+ *
9124
+ * Reads are fresh for 5 minutes and kept 30, are not re-read on window focus, and retry twice
9125
+ * with backoff, never on a 4xx (but 408/429) nor on a read a sign-out aborted. Writes never retry.
9126
+ * A write refused because the account's deletion is pending, or dropped by the client's settings
9127
+ * write breaker, tells the user. With `persist`, the offline slice of the cache is kept on this
9128
+ * device (`query-persist.ts`). Sign-out and sign-in clear it with `queryClient.clear()`; the same
9129
+ * client stays, so the provider and every hook keep theirs.
9130
+ */
9131
+
9132
+ interface ArbiQueryClientOptions {
9133
+ /** Keep the offline slice of the cache on this device, for an offline start. */
9134
+ persist?: boolean;
9135
+ }
9136
+ interface ArbiQueryClient {
9137
+ queryClient: QueryClient;
9138
+ /** For `<PersistQueryClientProvider persistOptions>`; `null` without `persist`. */
9139
+ persistOptions: ArbiQueryPersistOptions | null;
9140
+ }
9141
+ /** The shared React Query client (see the module comment). */
9142
+ declare function createArbiQueryClient(options: {
9143
+ persist: true;
9144
+ }): ArbiQueryClient & {
9145
+ persistOptions: ArbiQueryPersistOptions;
9146
+ };
9147
+ declare function createArbiQueryClient(options?: ArbiQueryClientOptions): ArbiQueryClient;
9148
+
8900
9149
  /**
8901
9150
  * Offline writes that survive a reload — opt in. A mutation made while offline pauses and is sent on
8902
9151
  * reconnect; a host that also persists its query cache (`@tanstack/react-query-persist-client`)
@@ -8920,22 +9169,6 @@ declare function isReplayableArbiMutation(mutationKey: MutationKey | undefined):
8920
9169
  * the host's API client, read when a restored write is sent.
8921
9170
  */
8922
9171
  declare function registerArbiMutationDefaults(queryClient: QueryClient, client: () => ArbiClient): void;
8923
- /**
8924
- * Whether a package query is worth persisting for an offline start (a host's
8925
- * `shouldDehydrateQuery`): the documents lists, documents, their versions and near-duplicate
8926
- * pairs (metadata, never a document's content), the workspace list (its keys stay wrapped), the
8927
- * user settings, the projects and the entitlements.
8928
- */
8929
- declare function isOfflineReadableArbiQuery(queryKey: QueryKey): boolean;
8930
- /**
8931
- * Whether a persisted package query may be restored when the app starts online. Not a documents
8932
- * list (it is never re-read on its own, so a stale copy would be trusted all session: it loads
8933
- * fresh instead), nor a document saved while still processing (its saved freshness would keep it
8934
- * "processing" with no re-read), nor the entitlements (kept for an offline start only: online they
8935
- * are read fresh, so a plan bought since shows at once). The other families (the workspace list,
8936
- * the settings) always. Offline, everything persisted is restored.
8937
- */
8938
- declare function isRestorableArbiQueryOnline(queryKey: QueryKey, data: unknown): boolean;
8939
9172
 
8940
9173
  /** The caller's projects at `stage` and/or led by `leadUser` (`usr-…`). */
8941
9174
  declare function useFilteredProjects(filters: {
@@ -10251,409 +10484,6 @@ declare function useContacts(options?: {
10251
10484
  outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10252
10485
  outcome_detail?: string | null;
10253
10486
  }[]>, Error>;
10254
- /** Contacts still waiting to join (an invitation sent or expired); `Invite again` re-invites them. */
10255
- declare function usePendingContacts(options?: {
10256
- enabled?: boolean;
10257
- }): {
10258
- pending: {
10259
- external_id?: string | null;
10260
- email?: string | null;
10261
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10262
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10263
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10264
- address_book_ext_id?: string | null;
10265
- created_at: string;
10266
- shared_workspace_ext_id?: string | null;
10267
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10268
- outcome_detail?: string | null;
10269
- }[];
10270
- data: NoInfer<{
10271
- external_id?: string | null;
10272
- email?: string | null;
10273
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10274
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10275
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10276
- address_book_ext_id?: string | null;
10277
- created_at: string;
10278
- shared_workspace_ext_id?: string | null;
10279
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10280
- outcome_detail?: string | null;
10281
- }[]>;
10282
- error: Error;
10283
- isError: true;
10284
- isPending: false;
10285
- isLoading: false;
10286
- isLoadingError: false;
10287
- isRefetchError: true;
10288
- isSuccess: false;
10289
- isPlaceholderData: false;
10290
- status: "error";
10291
- dataUpdatedAt: number;
10292
- errorUpdatedAt: number;
10293
- failureCount: number;
10294
- failureReason: Error | null;
10295
- errorUpdateCount: number;
10296
- isFetched: boolean;
10297
- isFetchedAfterMount: boolean;
10298
- isFetching: boolean;
10299
- isInitialLoading: boolean;
10300
- isPaused: boolean;
10301
- isRefetching: boolean;
10302
- isStale: boolean;
10303
- isEnabled: boolean;
10304
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
10305
- external_id?: string | null;
10306
- email?: string | null;
10307
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10308
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10309
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10310
- address_book_ext_id?: string | null;
10311
- created_at: string;
10312
- shared_workspace_ext_id?: string | null;
10313
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10314
- outcome_detail?: string | null;
10315
- }[]>, Error>>;
10316
- fetchStatus: _tanstack_query_core.FetchStatus;
10317
- promise: Promise<NoInfer<{
10318
- external_id?: string | null;
10319
- email?: string | null;
10320
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10321
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10322
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10323
- address_book_ext_id?: string | null;
10324
- created_at: string;
10325
- shared_workspace_ext_id?: string | null;
10326
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10327
- outcome_detail?: string | null;
10328
- }[]>>;
10329
- } | {
10330
- pending: {
10331
- external_id?: string | null;
10332
- email?: string | null;
10333
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10334
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10335
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10336
- address_book_ext_id?: string | null;
10337
- created_at: string;
10338
- shared_workspace_ext_id?: string | null;
10339
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10340
- outcome_detail?: string | null;
10341
- }[];
10342
- data: NoInfer<{
10343
- external_id?: string | null;
10344
- email?: string | null;
10345
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10346
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10347
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10348
- address_book_ext_id?: string | null;
10349
- created_at: string;
10350
- shared_workspace_ext_id?: string | null;
10351
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10352
- outcome_detail?: string | null;
10353
- }[]>;
10354
- error: null;
10355
- isError: false;
10356
- isPending: false;
10357
- isLoading: false;
10358
- isLoadingError: false;
10359
- isRefetchError: false;
10360
- isSuccess: true;
10361
- isPlaceholderData: false;
10362
- status: "success";
10363
- dataUpdatedAt: number;
10364
- errorUpdatedAt: number;
10365
- failureCount: number;
10366
- failureReason: Error | null;
10367
- errorUpdateCount: number;
10368
- isFetched: boolean;
10369
- isFetchedAfterMount: boolean;
10370
- isFetching: boolean;
10371
- isInitialLoading: boolean;
10372
- isPaused: boolean;
10373
- isRefetching: boolean;
10374
- isStale: boolean;
10375
- isEnabled: boolean;
10376
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
10377
- external_id?: string | null;
10378
- email?: string | null;
10379
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10380
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10381
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10382
- address_book_ext_id?: string | null;
10383
- created_at: string;
10384
- shared_workspace_ext_id?: string | null;
10385
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10386
- outcome_detail?: string | null;
10387
- }[]>, Error>>;
10388
- fetchStatus: _tanstack_query_core.FetchStatus;
10389
- promise: Promise<NoInfer<{
10390
- external_id?: string | null;
10391
- email?: string | null;
10392
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10393
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10394
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10395
- address_book_ext_id?: string | null;
10396
- created_at: string;
10397
- shared_workspace_ext_id?: string | null;
10398
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10399
- outcome_detail?: string | null;
10400
- }[]>>;
10401
- } | {
10402
- pending: {
10403
- external_id?: string | null;
10404
- email?: string | null;
10405
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10406
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10407
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10408
- address_book_ext_id?: string | null;
10409
- created_at: string;
10410
- shared_workspace_ext_id?: string | null;
10411
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10412
- outcome_detail?: string | null;
10413
- }[];
10414
- data: undefined;
10415
- error: Error;
10416
- isError: true;
10417
- isPending: false;
10418
- isLoading: false;
10419
- isLoadingError: true;
10420
- isRefetchError: false;
10421
- isSuccess: false;
10422
- isPlaceholderData: false;
10423
- status: "error";
10424
- dataUpdatedAt: number;
10425
- errorUpdatedAt: number;
10426
- failureCount: number;
10427
- failureReason: Error | null;
10428
- errorUpdateCount: number;
10429
- isFetched: boolean;
10430
- isFetchedAfterMount: boolean;
10431
- isFetching: boolean;
10432
- isInitialLoading: boolean;
10433
- isPaused: boolean;
10434
- isRefetching: boolean;
10435
- isStale: boolean;
10436
- isEnabled: boolean;
10437
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
10438
- external_id?: string | null;
10439
- email?: string | null;
10440
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10441
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10442
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10443
- address_book_ext_id?: string | null;
10444
- created_at: string;
10445
- shared_workspace_ext_id?: string | null;
10446
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10447
- outcome_detail?: string | null;
10448
- }[]>, Error>>;
10449
- fetchStatus: _tanstack_query_core.FetchStatus;
10450
- promise: Promise<NoInfer<{
10451
- external_id?: string | null;
10452
- email?: string | null;
10453
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10454
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10455
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10456
- address_book_ext_id?: string | null;
10457
- created_at: string;
10458
- shared_workspace_ext_id?: string | null;
10459
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10460
- outcome_detail?: string | null;
10461
- }[]>>;
10462
- } | {
10463
- pending: {
10464
- external_id?: string | null;
10465
- email?: string | null;
10466
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10467
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10468
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10469
- address_book_ext_id?: string | null;
10470
- created_at: string;
10471
- shared_workspace_ext_id?: string | null;
10472
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10473
- outcome_detail?: string | null;
10474
- }[];
10475
- data: undefined;
10476
- error: null;
10477
- isError: false;
10478
- isPending: true;
10479
- isLoading: true;
10480
- isLoadingError: false;
10481
- isRefetchError: false;
10482
- isSuccess: false;
10483
- isPlaceholderData: false;
10484
- status: "pending";
10485
- dataUpdatedAt: number;
10486
- errorUpdatedAt: number;
10487
- failureCount: number;
10488
- failureReason: Error | null;
10489
- errorUpdateCount: number;
10490
- isFetched: boolean;
10491
- isFetchedAfterMount: boolean;
10492
- isFetching: boolean;
10493
- isInitialLoading: boolean;
10494
- isPaused: boolean;
10495
- isRefetching: boolean;
10496
- isStale: boolean;
10497
- isEnabled: boolean;
10498
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
10499
- external_id?: string | null;
10500
- email?: string | null;
10501
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10502
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10503
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10504
- address_book_ext_id?: string | null;
10505
- created_at: string;
10506
- shared_workspace_ext_id?: string | null;
10507
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10508
- outcome_detail?: string | null;
10509
- }[]>, Error>>;
10510
- fetchStatus: _tanstack_query_core.FetchStatus;
10511
- promise: Promise<NoInfer<{
10512
- external_id?: string | null;
10513
- email?: string | null;
10514
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10515
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10516
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10517
- address_book_ext_id?: string | null;
10518
- created_at: string;
10519
- shared_workspace_ext_id?: string | null;
10520
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10521
- outcome_detail?: string | null;
10522
- }[]>>;
10523
- } | {
10524
- pending: {
10525
- external_id?: string | null;
10526
- email?: string | null;
10527
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10528
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10529
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10530
- address_book_ext_id?: string | null;
10531
- created_at: string;
10532
- shared_workspace_ext_id?: string | null;
10533
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10534
- outcome_detail?: string | null;
10535
- }[];
10536
- data: undefined;
10537
- error: null;
10538
- isError: false;
10539
- isPending: true;
10540
- isLoadingError: false;
10541
- isRefetchError: false;
10542
- isSuccess: false;
10543
- isPlaceholderData: false;
10544
- status: "pending";
10545
- dataUpdatedAt: number;
10546
- errorUpdatedAt: number;
10547
- failureCount: number;
10548
- failureReason: Error | null;
10549
- errorUpdateCount: number;
10550
- isFetched: boolean;
10551
- isFetchedAfterMount: boolean;
10552
- isFetching: boolean;
10553
- isLoading: boolean;
10554
- isInitialLoading: boolean;
10555
- isPaused: boolean;
10556
- isRefetching: boolean;
10557
- isStale: boolean;
10558
- isEnabled: boolean;
10559
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
10560
- external_id?: string | null;
10561
- email?: string | null;
10562
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10563
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10564
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10565
- address_book_ext_id?: string | null;
10566
- created_at: string;
10567
- shared_workspace_ext_id?: string | null;
10568
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10569
- outcome_detail?: string | null;
10570
- }[]>, Error>>;
10571
- fetchStatus: _tanstack_query_core.FetchStatus;
10572
- promise: Promise<NoInfer<{
10573
- external_id?: string | null;
10574
- email?: string | null;
10575
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10576
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10577
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10578
- address_book_ext_id?: string | null;
10579
- created_at: string;
10580
- shared_workspace_ext_id?: string | null;
10581
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10582
- outcome_detail?: string | null;
10583
- }[]>>;
10584
- } | {
10585
- pending: {
10586
- external_id?: string | null;
10587
- email?: string | null;
10588
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10589
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10590
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10591
- address_book_ext_id?: string | null;
10592
- created_at: string;
10593
- shared_workspace_ext_id?: string | null;
10594
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10595
- outcome_detail?: string | null;
10596
- }[];
10597
- data: NoInfer<{
10598
- external_id?: string | null;
10599
- email?: string | null;
10600
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10601
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10602
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10603
- address_book_ext_id?: string | null;
10604
- created_at: string;
10605
- shared_workspace_ext_id?: string | null;
10606
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10607
- outcome_detail?: string | null;
10608
- }[]>;
10609
- isError: false;
10610
- error: null;
10611
- isPending: false;
10612
- isLoading: false;
10613
- isLoadingError: false;
10614
- isRefetchError: false;
10615
- isSuccess: true;
10616
- isPlaceholderData: true;
10617
- status: "success";
10618
- dataUpdatedAt: number;
10619
- errorUpdatedAt: number;
10620
- failureCount: number;
10621
- failureReason: Error | null;
10622
- errorUpdateCount: number;
10623
- isFetched: boolean;
10624
- isFetchedAfterMount: boolean;
10625
- isFetching: boolean;
10626
- isInitialLoading: boolean;
10627
- isPaused: boolean;
10628
- isRefetching: boolean;
10629
- isStale: boolean;
10630
- isEnabled: boolean;
10631
- refetch: (options?: _tanstack_query_core.RefetchOptions) => Promise<_tanstack_query_core.QueryObserverResult<NoInfer<{
10632
- external_id?: string | null;
10633
- email?: string | null;
10634
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10635
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10636
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10637
- address_book_ext_id?: string | null;
10638
- created_at: string;
10639
- shared_workspace_ext_id?: string | null;
10640
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10641
- outcome_detail?: string | null;
10642
- }[]>, Error>>;
10643
- fetchStatus: _tanstack_query_core.FetchStatus;
10644
- promise: Promise<NoInfer<{
10645
- external_id?: string | null;
10646
- email?: string | null;
10647
- user?: _arbidocs_client.components["schemas"]["UserResponse"] | null;
10648
- status: ("registered" | "invited" | "expired" | "card") | "failed";
10649
- card?: _arbidocs_client.components["schemas"]["ContactCard"] | null;
10650
- address_book_ext_id?: string | null;
10651
- created_at: string;
10652
- shared_workspace_ext_id?: string | null;
10653
- outcome?: ("invited" | "reinvited" | "not_resent_still_pending" | "contact_added" | "already_contact" | "failed") | null;
10654
- outcome_detail?: string | null;
10655
- }[]>>;
10656
- };
10657
10487
  /**
10658
10488
  * Invite (or link) people by email. An address not yet on ARBI gets an invitation. Resolves with one
10659
10489
  * row per address (`outcome`, `status`); map it with `toAddContactsRows` from `@arbidocs/blocks/collaboration`.
@@ -14194,6 +14024,9 @@ type NotificationTarget =
14194
14024
  /** Projects and their AI usage. */
14195
14025
  | {
14196
14026
  kind: 'projects';
14027
+ } | {
14028
+ kind: 'support';
14029
+ ticketId: number;
14197
14030
  }
14198
14031
  /** Storage settings. */
14199
14032
  | {
@@ -14681,11 +14514,6 @@ interface ConversationListProps {
14681
14514
  * call to action. Pass `null` for no heading at all.
14682
14515
  */
14683
14516
  header?: React.ReactNode;
14684
- /**
14685
- * Pinned above the rows, below the heading: a call to action such as `DmInviteChip` from
14686
- * `@arbidocs/blocks/collaboration`, or a start-by-email form. Shown even when the list is empty.
14687
- */
14688
- lead?: React.ReactNode;
14689
14517
  /**
14690
14518
  * Overrides the rail's own sizing. The default is a fixed-width column beside
14691
14519
  * a thread; a consumer showing the list on its own needs it to fill instead,
@@ -14694,7 +14522,7 @@ interface ConversationListProps {
14694
14522
  */
14695
14523
  className?: string;
14696
14524
  }
14697
- declare function ConversationList({ conversations, selectedPeerId, onSelect, classNames, emptyState, header, lead, className, }: ConversationListProps): React$1.JSX.Element;
14525
+ declare function ConversationList({ conversations, selectedPeerId, onSelect, classNames, emptyState, header, className, }: ConversationListProps): React$1.JSX.Element;
14698
14526
 
14699
14527
  interface DmComposerProps {
14700
14528
  /** Placeholder, e.g. "Message Eleanor…". */
@@ -15071,15 +14899,13 @@ declare function CommandPalette({ open, onOpenChange, navItems, onNavigate, buil
15071
14899
 
15072
14900
  interface CommandPaletteProviderProps extends Omit<CommandPaletteProps, 'open' | 'onOpenChange'> {
15073
14901
  children: ReactNode;
15074
- /** Disable the global ⌘K / Ctrl+K binding (default enabled). */
15075
- hotkey?: boolean;
15076
14902
  }
15077
14903
  /**
15078
14904
  * Wraps the app once with the palette's data (nav items, grounding, prompt) and
15079
14905
  * provides an imperative handle via {@link useCommandPalette}. Binds ⌘K/Ctrl+K
15080
14906
  * globally so any surface — a topbar search button, a menu item — can open it.
15081
14907
  */
15082
- declare function CommandPaletteProvider({ children, hotkey, ...paletteProps }: CommandPaletteProviderProps): React$1.JSX.Element;
14908
+ declare function CommandPaletteProvider({ children, ...paletteProps }: CommandPaletteProviderProps): React$1.JSX.Element;
15083
14909
 
15084
14910
  /** Imperative handle to the command palette, exposed to any descendant. */
15085
14911
  interface CommandPaletteValue {
@@ -16118,54 +15944,6 @@ interface UploadFromUrlsResult {
16118
15944
  }
16119
15945
  declare function useUploadFromUrls(): ({ urls, shared, configExtId, workspaceId: named, }: UploadFromUrlsInput) => Promise<UploadFromUrlsResult>;
16120
15946
 
16121
- /**
16122
- * The documents related to each document of a workspace. It computes a map of related documents for each document in the workspace.
16123
- * Relationships include:
16124
- * - Email family: parent/child via parent_ext_id (an attachment and its email, a message and its
16125
- * mailbox archive). Versions are NOT relations: they live inside their document.
16126
- * - Made from: derivations (a crop's source image, a redline's inputs, a redacted copy's original,
16127
- * a production's documents) from `derived_from`, with the source version when it is not the
16128
- * current one; and the other way round, the copies made from a document
16129
- * - Exact duplicates (same content_hash / fingerprint)
16130
- * - Near-duplicates (from similarity API)
16131
- *
16132
- * Returns a stable Map<docExtId, RelatedDocs> recomputed only when
16133
- * the documents array or similarity data changes.
16134
- */
16135
-
16136
- interface RelatedDocs<D extends WorkspaceDocument = WorkspaceDocument> {
16137
- /** The email / mailbox archive this document was extracted from. */
16138
- parent?: D;
16139
- /** Attachments: documents extracted from this one. */
16140
- children: D[];
16141
- /** Documents this one was made from (crop, redline, redacted copy); not the previous version. */
16142
- madeFrom: D[];
16143
- /** Documents made from this one (a redacted or annotated copy, a production, a crop). */
16144
- copies: D[];
16145
- /** How each made-from / copy document is related, by its id (a `derived_from` role). */
16146
- roles: Record<string, string>;
16147
- /**
16148
- * The version of a made-from document this one was made from, by its id — only when that is
16149
- * not the source's current version (the copy was made from an older version).
16150
- */
16151
- versions?: Record<string, number>;
16152
- duplicates: D[];
16153
- similar: Array<{
16154
- doc: D;
16155
- similarity: number;
16156
- }>;
16157
- }
16158
- type RelatedDocsMap<D extends WorkspaceDocument = WorkspaceDocument> = Map<string, RelatedDocs<D>>;
16159
- /** Count total related documents for a given entry */
16160
- declare function getRelatedTotal(related: RelatedDocs<WorkspaceDocument>): number;
16161
- /** Build human-readable count labels per relationship type */
16162
- declare function getRelatedLabels(related: RelatedDocs<WorkspaceDocument>): string[];
16163
- /**
16164
- * Computes related documents map from workspace documents and similarity API.
16165
- * Call this in a component that has access to the documents array.
16166
- */
16167
- declare function useRelatedDocuments<D extends WorkspaceDocument>(documents: D[]): RelatedDocsMap<D>;
16168
-
16169
15947
  /**
16170
15948
  * Changes made offline that wait to sync: the documents' writes held back by React Query while
16171
15949
  * offline (paused mutations, persisted by the host's query persister) or that failed when they
@@ -16329,4 +16107,46 @@ declare function finishEntityExtraction(docIds: readonly string[]): void;
16329
16107
  /** The documents being extracted now. */
16330
16108
  declare function useEntityExtractionDocIds(): readonly string[];
16331
16109
 
16332
- export { AGENT_CONTROL_COMMANDS, AGGREGATE_FIELDS, ALLOWED_PORTAL_ORIGINS, ARCHIVE_POLL_MS, ASSISTANT_MENTION_LABEL, AUDIO_MIME_PREFERENCE, AUTO_CHAT_MODEL, type AccessRequestPayload, type AccessRequestRecipient, type AccountClient, type AccountClientContextValue, type AccountHost, type AccountSession, type AccountSignOutOptions, ActiveCall, type ActivityContent, type ActivityDescription, ActivityFeed, type ActivityFeedProps, type AddWorkspaceMembersRequest, type AgentAccessMode, type AgentConfigSections, type AgentControlMaps, AgentDmStatus, type AgentQuestionRef, type AgentRunControlState, type AggregateOp, type AggregatedDailyUsage, type AggregatedModelGroupUsage, AiActionCard, AiAnswer, type AiRunOptions, type AiTaskStatus, AppNotification, AppleIcon, type ApplyCallEventOptions, ArbiBotHeadIcon, ArbiBotIcon, type ArbiChatActions, type ArbiChatCitation, type ArbiChatDocument, type ArbiChatHost, type ArbiChatMessage, type ArbiChatMessageStatus, type ArbiChatPassage, type ArbiChatRole, type ArbiChatState, type ArbiChatStore, type ArbiChatStoreOptions, type ArbiChatThread, type ArbiConversation, type ArbiConversationDocument, type ArbiConversationGeneration, type ArbiDmTab, type ArbiDocumentSessionActions, type ArbiDocumentSessionState, type ArbiDocumentSessionStore, type ArbiDocumentViewerState, type ArbiDraftStorage, type ArbiFeature, type ArbiFeatures, type ArbiGridLayoutState, ArbiHost, type ArbiHostConfig, ArbiHostConnection, ArbiHostProps, type ArbiKeyValueStorage, type ArbiLayoutActions, type ArbiLayoutState, type ArbiLayoutStore, type ArbiLayoutStoreOptions, type ArbiMessageTimer, type ArbiPanelMode, type ArbiPanelsState, type ArbiSavedChat, type ArbiSavedLayout, type ArbiSessionParts, type ArbiSessionPersist, type ArbiSessionState, type ArbiSessionStatus, type ArbiSessionStore, type ArbiSessionStoreOptions, type ArbiShellState, type ArbiSidebarState, type ArbiSignedInSession, type ArbiTabsState, type ArbiThreadComposer, type ArbiThreadTab, type ArbiThreadTabShow, type ArbiThreadTabView, type ArbiThreadTabsController, type ArbiThreadTabsState, type ArbiThreadView, type ArbiViewerTab, type ArbiViewingDocument, type ArbiViewingDocumentInput, type ArbiViewsState, ArbiWebSocketProvider, type ArbiWebSocketProviderProps, type ArbiWorkspaceState, type ArbiWorkspaceStatus, type ArbiWorkspaceStorage, type ArbiWorkspaceStore, type ArbiWorkspaceStoreOptions, type ArbiWsState, type ArbiWsStatus, ArtifactCanvas, type AskAgain, type AspectOption, type AssignDocTagsInput, type AssistantMode, AudIcon, type AudioPiece, type AvatarCrop, type AvatarFileProblem, BOOT_GATE_TIMEOUT_MS, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_ACTION, BOX_SEAT_REFUSED_TITLE, BUILTIN_DATA_SOURCES, type BranchNavigation, type BranchPoint, type BrowserWorkspaceStorageOptions, type BuildArchiveInput, type BuiltArchive, CALL_MODERATION_TOPIC, CONVERSATION_SWITCH_MEASURE, type CalendarConnectorSupport, type CalendarNotificationMeta, type CalendarOfflineSupport, type CalendarPendingWrite, type CalendarSupport, type CalendarWriteOp, type CallInviteContact, type CallMutedNotice, type CallRoomEvents, type CallSlotMode, type CallUserPillProps, type CallsHost, type ChartSpec, type ChartType, type ChatArrival, ChatBubble, type ChatBubbleProps, ChatMemberKey, type ChatPost, ChatResponse, type ChatSummary, ChatThreadMessage, type Chunk, type ChunkActivation, type ChunkedRecorder, type ChunkedRecorderOptions, CitationRenderer, type CitationRendererProps, type CitationState, ClaudeIcon, CommandPalette, type CommandPaletteClassNames, type CommandPaletteProps, CommandPaletteProvider, type CommandPaletteProviderProps, type CommandPaletteValue, type ConfigUpdate, type ConversationActionsInput, type ConversationEvent, ConversationList, type ConversationListProps, ConversationScope, type ConversationScopeProps, type ConversationsSourceLabels, type CreateProjectVars, type CreateSkillPackOptions, type CreateTagInput, type CreateWorkspaceVars, type CreatedProject, type CropArea, type CropOutput, type CropResult, type CurrentWorkspace, DATABASE_RELATION_PICK_LIMIT, DATABASE_ROWS_PAGE, DEFAULT_ASPECT_OPTIONS, DEFAULT_CONVERSATIONS_SOURCE_LABELS, DEFAULT_DATABASE_SOURCE_LABELS, DEFAULT_DOCUMENTS_SOURCE_LABELS, DEFAULT_DOCUMENT_VIEWER_STATE, DEFAULT_PASSWORD_CHANGE_FORM_MESSAGES, DEFAULT_PROJECTS_SOURCE_LABELS, DEFAULT_USAGE_SOURCE_LABELS, DEFAULT_WORKSPACES_SOURCE_LABELS, DISMISSED_TASK_TTL_MS, DOCUMENTS_FIRST_PAGE_MEASURE, DOCUMENTS_FIRST_PAGE_SIZE, DOCUMENTS_PAGE_SIZE, type DashboardSpec, type DashboardStore, type DashboardsHost, type DataSource, type DataSourceFieldsState, type DataSourceOption, type DataSourceParam, type DataSourceParams, type DataSourceRef, type DataSourceRegistry, type DatabaseAggregateRequest, type DatabaseAggregateResult, type DatabaseDashboardStoreOptions, type DatabaseSourceLabels, type Dataset, type DatasetField, type DatasetFieldType, type DatasetFilter, type DatasetOrder, type DatasetQuery, type DatasetRow, type DatasetSort, type DatasetState, type DatasetValue, DateSeparator, type DateSeparatorProps, type DebouncedWriter, type DebouncedWriterOptions, type DeleteAccountBlocker, type DeleteAccountFlow, type DeletedDocument, type DeletedDocumentsPage, type DescribeCalendarNotificationOptions, type DescribeServerNotificationOptions, DictateContextValue, DmAvatar, type DmAvatarProps, type DmClassNames, DmComposer, type DmComposerProps, type DmConversation, type DmMessage, type DmUser, DocIcon, DocQaPanel, DocSearch, DocumentCardMenu, type DocumentCardMenuProps, type DocumentHostActions, type DocumentPerson, DocumentReview, type DocumentReviewProps, type DocumentRowChange, type DocumentStartItem, type DocumentsSourceLabels, type DocumentsSupport, type DraftKeyValueStore, DraftTitleControls, type DraftTitleControlsProps, EMPTY_CHAT_STATE, EMPTY_GROUP_LABEL, EMPTY_SESSION_STATE, EXPORT_SAMPLE_RATE, type EmailChange, type EmailPreferences, EmlIcon, type EnableDriveSyncVars, type EnableMailboxSyncVars, type EntitledFeature, EntityIconComponent, EntityVocabulary, type ExportDownloadRequest, type ExportFileKind, type ExtractedZip, FACTS_SEARCH_VIEW, FILE_TYPE_COLORS, FINISHED_DOCUMENT_STATUSES, FIRST_TOKEN_MEASURE, type FactListFilter, type FactSearchHit, type FactsSearch, type FactsSearchState, type FeatureEntitlements, type FeatureRefusal, type FeatureSource, type FeatureSwitch, FileIcon, type FilterOp, FireworksIcon, type FollowSaveCallbacks, GeminiIcon, type GenerateDocTagsInput, GitHubIcon, GoogleIcon, type GrantAgentAccessVars, HostConfigRecord, HtmlIcon, IN_FLIGHT_DOCUMENT_STATUSES, IdentityPurchase, IdentityStatus, IdentityStep, type IdentityVerificationApi, IdentityVerificationFlow, ImageCropModal, type ImageCropModalProps, ImageCropper, type ImageCropperProps, ImgIcon, IncomingCall, InlineMicButton, type InlineMicButtonProps, type InstallSkillPackVariables, JoinChoices, LIVE_UPDATE_TYPES, LinkedInIcon, type LiveTask, type LocalFeatureStore, type LocalFeatureStoreOptions, MAIL_DRAFT_REPLACED_EVENT, MAX_AVATAR_FILE_BYTES, MAX_DASHBOARD_SPEC_CHARS, MAX_SERIES, MAX_THREAD_TABS, MIN_NARRATION_DWELL_MS, MIN_QUEUED_MESSAGE_VISIBILITY_MS, MODEL_GROUP_LABELS, MUTED_DEDUPE_MS, type MailAccount, type MailAddress, type MailAttachment, type MailClient, type MailClientContextValue, type MailCompose, type MailDeliveryRecipient, type MailDeliveryStatus, type MailDeviceFallback, type MailDraftEditorRequest, type MailDraftEditorSession, type MailFetch, type MailFolder, type MailHost, type MailMessage, type MailMessageUpdate, MailOfflineUnavailableError, type MailPage, type MailPolicy, type MailProject, MeetingChatRef, MeetingChatTarget, MentionCandidate, type MessageArtifact, MessageArtifactCard, MessageMentionRef, type MessageTimerResult, MicRecordingOverlay, type MicRecordingOverlayProps, MicWaveformIndicator, type MicWaveformIndicatorProps, type ModeratedTrack, type MountDiditOptions, type NameEditor, type NotificationPreferencesModel, type NotificationTarget, type NotificationTypeMeta, NotifyVariant, type OfflineDocumentRecord, OpenAIIcon, type OpenedRecording, type OptimisticDocumentEdit, type OrderResolver, PENDING_SYNC_PREDICATE, PLAYBACK_LOOKAHEAD_MS, POLL_EVERY_MS, PROJECT_CREATION_DENIED_REASON, type PaletteNavItem, type PanelDatasetState, type PanelSpec, type ParsedChunk, type ParsedChunkMetadata, type ParsedDocument, type ParsedDocumentMetadata, type PassageResolvers, type PasswordChangeForm, type PasswordChangeFormMessages, type PasswordChangeVars, PdfIcon, type PendingSyncItem, type PeopleDirectory, type Person, PhotoCapture, type PhotoCaptureProps, type ProcessingTask, type ProfileView, type ProjectsSourceLabels, type ProjectsSourceOptions, type ProjectsUsageAggregate, type QueuedCalendarWrite, type QueuedMessage, type QueuedMessages, type QuoteResolver, RECORDING_SEGMENTER, RUN_WINDOW_MS, type RawPending, type RecordedChunk, type RecordingWindow, type RefusedUploadFile, type RelatedDocs, type RelatedDocsMap, type RelevancePatch, type RemoveDocTagsInput, type RenderMarkdown, type RequestAccessOptions, type RowsSourceDefinition, type RowsState, SEGMENT_FRAME_MS, SEGMENT_PRE_ROLL_MS, SHORT_PIECE_MERGE_GAP_MS, SIGNATURE_NOTIFICATION_TYPES, SIMILARITY_THRESHOLD, SLOW_AFTER_MS, STILL_WORKING, type SaveAgentConfigVars, type SavedDashboard, type SealedDraftStorageOptions, type SearchMode, SearchSession, SearchStatus, SegmenterConfig, type SemanticSearch, type SemanticSearchOptions, type SendMessageOptions, type SequencedRow, type SequencedTask, type ServerNotificationBellOptions, type ServerNotificationDescription, type ShellRecentWorkspaceItem, type ShellWorkspaceItem, type ShellWorkspaceKind, type ShellWorkspaceMember, type ShellWorkspaceSeed, type ShellWorkspaceSource, type SignatureNotificationType, type SkillPack, type SkillPackEntry, type StartTaskQuery, StorageActionError, type StorageActions, type StorageDeploymentUsage, type StorageItem, type StorageItemKind, type StorageItemState, type StorageItemsQuery, type StorageKindUsage, type StoragePersistOptions, type StorageProjectUsage, type StorageScope, type StorageSnapshot, type StreamHandlerContext, type StreamHandlerParams, type StreamHandlers, type StreamState, type SwitchWorkspaceTarget, TRANSFER_POLL_MS, type TableView, type TableViewTable, TaskThreadPendingError, type ThreadAccessors, ThreadBinding, type ThreadItem, type TimeBucket, type TimelinePart, type ToolResponses, type TrackCutter, type TrackPiece, type TranscriptExportLine, type TranscriptLineRef, type TranscriptSegmentMarker, type TransferConflictPolicy, type TransferKind, type TransferMode, type TransferPlan, type TransferScope, type TransferStatus, type TurnTarget, type TurnTools, TxtIcon, TypingIndicator, UPLOAD_ACCEPT, UPLOAD_MAX_FILE_SIZE, type UiStateStorage, type UnarchiveEstimate, type UpdateDocTagInput, type UpdateDocumentsInput, type UpdateProfileVars, type UploadDocumentsInput, type UploadFilesInput, type UploadFilesProgress, type UploadFilesResult, type UploadFromUrlsInput, type UploadFromUrlsResult, type UploadRefusal, type UploadUrlsInput, type UsageSourceLabels, type UsageTotals, type UseArbiShellWorkspacesOptions, type UseAskAgainOptions, type UseAvatarCropOptions, type UseCameraStreamResult, type UseConversationOptions, type UseDeleteAccountFlowOptions, type UseDownloadDocumentsOptions, type UseEmailChangeOptions, type UseFactsSearchOptions, type UseIdentityVerificationFlowOptions, type UseMessageTimerOptions, type UseNameEditorOptions, type UsePasswordChangeFormOptions, type UseShellWorkspacesOptions, type UseShellWorkspacesResult, type UseSwitchWorkspaceResult, type UseVideoRecorderResult, type UserResponse, type UserSettingFlag, type UserSettingsPatch, VIDEO_MIME_PREFERENCE, VidIcon, VideoCapture, type VideoCaptureProps, type VideoRecorderState, VoiceNoteRecorder, type VoiceNoteRecorderProps, WORKSPACE_LAST_OPENED_KEY, WORKSPACE_STORAGE_KEY, WORK_NOTIFICATION_LABELS, type WorkspaceArchive, type WorkspaceArchiveState, type WorkspaceDocument, type WorkspaceExport, type WorkspaceMember, type WorkspaceNotificationLevel, type WorkspaceProcessing, type WorkspaceRole, type WorkspaceSwitchContext, type WorkspaceUpdate, type WorkspacesSourceLabels, XlsIcon, type ZipExtractor, __resetPendingFinalCommitsForTests, __resetStreamingTokenBufferForTests, acceptRing, accountPath, addAssistantMessageToCache, addConversationToList, addUserMessageToCache, adjustTagCounts, adoptNewChatDocument, agentControl, aggregateDataset, aliasTakenMessage, allConversationThreads, annotateThread, announceMailDraftReplaced, announceTurnEnded, appendTokenToMessage, applyCallEvent, applyConversationEvent, applyFinalContextToMessage, applyLiveUpdate, applyNotificationRow, applyOptimisticDocumentEdit, applyOutputItemToMessage, applyTaskEvent, arbiAccountClient, arbiMailClient, archiveName, archivedWorkspaceMessage, assistantLabels, bindThreadDocument, boundDocumentOf, browserWorkspaceStorage, bucketOf, bucketRange, buildDocumentMetadataRows, buildMentionCandidates, buildPendingFirstTurn, buildPendingSyncItem, buildWorkspaceArchive, cacheThreadBinding, cachedAssistantMode, cachedMentionCandidates, cachedQuotaUsedUp, calendarNotificationMeta, callLink, callNotificationMeta, captureFrameAsBlob, chatTranscriptRef, classifyMediaError, clearLoadingState, clearSealedDrafts, clearUserInputRequest, clockTime, closePanelIn, commitFinalMessage, completeQueuedUserMessageByContent, composeArbiSessionStore, compositeFiles, compositeTrack, connectOAuthCalendarAccount, connectorErrorStatus, connectorReturnTo, conversationKey, createArbiChatStore, createArbiDocumentSessionStore, createArbiLayoutStore, createArbiSessionStore, createArbiWorkspaceStore, createChunkedRecorder, createConversationsSource, createDataSourceRegistry, createDatabaseSource, createDebouncedWriter, createDocumentsSource, createLocalFeatureStore, createMailClient, createMemoryDashboardStore, createMutedNotifier, createProjectsSource, createSealedDraftStorage, createSkillPack, createStoragePersist, createStreamHandlers, createTrackCutter, createUiStateStorage, createUsageSource, createWorkspaceSwitch, createWorkspacesSource, cropImage, cutAtPauses, dayKey, declineRing, decodeMono16k, defaultLayoutState, defaultMailAlias, defineRowsSource, deploymentUserMeta, describeActivity, describeCalendarNotification, describeServerNotification, discardStreamingTokensForMessage, disconnectAttachedRun, dmTabId, documentActivityMeta, documentActivityPhrase, documentDisplayName, docxMentionMeta, downloadRecoveryFile, dropTagFromCachedDocuments, encodeWav, ensureAssistantMessageLoading, entitlementRefusal, extensionFor, extractZipFile, fallbackFileName, fetchPart, fileAttachment, fileSafe, filesFromDrop, fillTimeGaps, filterRows, findConversation, finishEntityExtraction, floatToWav, flushOnPageExit, flushStreamingTokens, forgetDocuments, forgetUploadedDocumentFolder, formatConfigValidationError, formatElapsed, formatIdentityPrice, formatTranscriptMarkdown, getCachedDocuments, getInterjectionText, getNotificationTypeMeta, getOfflineDocument, getOrphanedLastMessage, getRelatedLabels, getRelatedTotal, getRunStartedAt, getThreadsQueryKey, getWorkspaceActionText, getWorkspaceKind, getWorkspaceSentPhrase, hasPendingFinalCommit, hasRecordingTranscript, hasVideoTrack, identityStepFor, inputRequestTitle, invalidateCalendarEvents, invalidateCalendars, invalidateCall, invalidateConversationActivity, invalidateConversationDetails, invalidateConversationLists, invalidateTagData, invalidateTagTables, isActivityKey, isAliasTakenError, isArchiveMoving, isCommentToPeople, isConversationListKey, isConversationShared, isDeploymentAdmin, isDeploymentUserNotification, isDocumentsLoading, isFullConfig, isMessageRunning, isNotificationRow, isOfflineReadableArbiQuery, isOrphanedUserMessage, isPanelOpen, isQueuedCalendarWrite, isRecordingSegmentId, isReplayableArbiMutation, isRestorableArbiQueryOnline, isRowNewer, isSignatureNotificationType, isStaleTaskUpdate, isTableViewOf, isTransferFinished, isTransferResumable, isUsageMetered, isWorkspaceArchivedError, isWorkspaceGuestOf, isWorkspaceNotificationType, isZipFile, joinFromPreJoin, layoutActionsOf, loadOfflineDocument, mailDraftIdFromContent, mailJson, markMessageAsFailed, markNarrationSettled, mergeHostConfig, migrateLegacyThreadDocuments, mountDiditVerification, mutedNoticeFromEvent, mutedNoticeFromPacket, mutedNoticeText, nextAliasSuggestion, nextViewingDocument, notificationUserName, onCallEvent, openAccessRequest, openCall, openPanelIn, openRecording, panelPlace, parseActivityContent, parseDashboardSpec, parseDeleteAccountBlockers, parseSavedChat, parseSavedLayout, partKey, partsDue, patchCachedDocument, patchConversation, patchConversationList, patchDocuments, patchWorkspaceTags, pendingChatModelSave, peopleDirectory, personOfUser, pickRecentWorkspaces, pickRecorderMimeType, playheadAt, postRecordingDocsToThread, postTranscriptToThread, prepareUploadFiles, queryOfChart, queuedMessages, readLocalFeature, readWorkspaceLastOpened, recordingFiles, recordingWindowsOf, recordsOf, redlineStats, refreshDocuments, refuseChatWhenOffline, registerArbiMutationDefaults, registerAttachedRun, removeConversationFromLists, removeSettledNarration, requestPersistentStorage, resetCalendarAccountSyncState, resetMessageContent, resolveActiveWorkspace, resolveConfigModel, resolveDocumentStatus, resolveReplyTarget, restoreLayout, rollbackOptimisticDocumentEdit, safePortalUrl, saveRecordingFilesToThread, savedChatOf, savedLayoutOf, schedulePart, selectDraft, selectIsGenerating, selectViewingDocumentId, serializeDashboardSpec, serverCallsExperimental, serverNotificationBellEntry, setCachedDocument, setMessageContent, setUserInputRequest, settledByRows, signatureNotificationPhrase, signatureRequestMeta, sortTranscriptMessages, sortedParts, speakerTracks, speakerWav, splitIntoFiles, standalone, startChatCall, startContactsCall, startDmCall, startEntityExtraction, startThreadCall, startsMediaFile, stopDocumentsLoading, stripSpeakerPrefix, subscribeDocumentReads, subscribeDocumentRows, supersedeLiveTranscript, supersededTranscriptLines, supportsHouseTemplates, textToArtifact, threadBinding, threadEndingAtContains, threadTabId, threadTranscriptLines, threadTranscriptRef, timelineDurationMs, timelineOf, titleFromQuestion, toChatCitations, toNotificationPreferences, toProfileView, toRedlineMarkdown, toShellWorkspace, transcribeRecording, transcriptSegmentOf, updateMessageWithMetadata, updateUserMessageInCache, updateUserMessageStateInCache, uploadFolderOf, uploadedDocumentFolder, upsertDocuments, useAccountClient, useActOnStep, useActiveConfigId, useActivity, useAddChatMembers, useAddDatabaseRows, useAddHolidayCalendar, useAddProjectAddonBlock, useAddWorkspaceMembers, useAddonQuote, useAgentChats, useAgentConfig, useAgentDmStatus, useAgentModels, useAgentRunControl, useAgentSession, useAgentWorkspaces, useAgents, useAiTask, useAnswerAgentQuestion, useApplyChatModel, useArbi, useArbiConnected, useArbiHost, useArbiSession, useArbiSessionState, useArbiSessionStore, useArbiShellWorkspaces, useArbiWebSocket, useArbiWsContext, useArbiWsMessage, useArbiWsStatus, useArbiWsStore, useArchiveProgressPolling, useArchiveWorkspace, useAskAgain, useAssignDocTags, useAssistantName, useAssistantQuery, useAuthorizeLimits, useAutoSendDraft, useAvailableModels, useAvatarCrop, useBookingPages, useBootTimeout, useBoxRole, useBranchNavigation, useBuiltinCommands, useCalDavProfiles, useCalendarAccounts, useCalendarEvent, useCalendarEventByUid, useCalendarEvents, useCalendarInvitations, useCalendarOutbox, useCalendarOverlays, useCalendarSettings, useCalendarShares, useCalendarSupport, useCalendars, useCall, useCallInviteLinks, useCallRecording, useCallRecordings, useCallTranscriptionAvailable, useCallsConfig, useCallsEnabled, useCameraStream, useCanCreateProjects, useCanEditShared, useCanHostCalls, useCancelDriveSync, useCancelMailboxSync, useCancelManyPendingSync, useCancelProjectSubscription, useCancelWorkspaceTransfer, useChangeProjectPlan, useChargeWatch, useChatArrivals, useChatPost, useChatSummaries, useChatThread, useChatUnreadTotal, useChats, useClaimNativeAlias, useClaimSecureMail, useCloseAgentSession, useCommandPalette, useConfig, useConfigSchema, useConfigs, useConfirmEmailChange, useConnectCalDavAccount, useConnectMailAccount, useConnectOAuthAccount, useConnectRunStream, useConnectorAutoSync, useConnectorCatalog, useConnectorVendorVisibility, useContacts, useConversation, useConversationActions, useConversationActivity, useConversationData, useConversationDocuments, useConversationIsShared, useConversationItems, useConversationPendingAuth, useConversationSearch, useConversationThreads, useConversationTurn, useConversationUsage, useConversations, useCreateAgent, useCreateCalendar, useCreateContact, useCreateDatabase, useCreateEvent, useCreateFact, useCreateFacts, useCreateGroupChat, useCreateProject, useCreateProjectCheckout, useCreateRoom, useCreateTag, useCreateWork, useCreateWorkflow, useCreateWorkspace, useCurrentSessionId, useCurrentUser, useCurrentWorkspace, useDashboardStore, useDataSources, useDatabase, useDatabaseAggregate, useDatabaseDashboardStore, useDatabaseRows, useDatabases, useDecideCounter, useDeleteAccount, useDeleteAccountFlow, useDeleteAgents, useDeleteBookingPage, useDeleteCalendar, useDeleteChatMessage, useDeleteConfig, useDeleteContact, useDeleteConversation, useDeleteDashboard, useDeleteDatabase, useDeleteDatabaseRows, useDeleteDocuments, useDeleteEvent, useDeleteFact, useDeleteMessage, useDeleteNotifications, useDeleteProject, useDeleteSkill, useDeleteTag, useDeleteWorkflow, useDeleteWorkspaces, useDeploymentDomain, useDirectModelUsage, useDisconnectCalendarAccount, useDisconnectConnector, useDisconnectMailAccount, useDisconnectSlack, useDismissedTips, useDocument, useDocumentAutoAdd, useDocumentHostActions, useDocumentPendingSync, useDocumentThumbnails, useDocumentVersionList, useDocuments, useDocumentsById, useDocumentsLoading, useDocumentsSupport, useDownloadDocuments, useDriveFolderChildren, useDriveFolderDocCount, useDriveFolders, useDriveSyncEstimate, useDriveSyncProgress, useEmailChange, useEnableDriveSync, useEnableMailboxSync, useEntitlements, useEntityExtractionDocIds, useExportDatabase, useExtractEntities, useFacts, useFactsSearch, useFeature, useFeatureSwitch, useFetchCalendarEvent, useFilteredProjects, useFinaliseTranslation, useFindTime, useFirmPool, useFollowThread, useFreeBusy, useGenerateAgentAvatar, useGenerateDocTags, useGrantAgentAccess, useHealth, useHolidayCountries, useHouseTemplateCandidates, useIdentityVerification, useIdentityVerificationFlow, useImportCalendar, useImportContacts, useImportDatabase, useImportDatabaseRows, useInstallSkillPack, useInvalidateAfterTransfer, useInvalidateEntitlements, useInvalidateProjects, useInvalidateStorage, useInvalidateTagData, useInviteContacts, useIsCreatingTag, useIsEntitled, useIsSlow, useIsWorkspaceOwner, useKeepDocumentsOffline, useLinkContact, useLinkMentions, useMailAccounts, useMailAttachmentText, useMailCache, useMailClient, useMailDraftCompose, useMailDraftEditor, useMailDraftReplaced, useMailFolders, useMailMessage, useMailMessages, useMailOnline, useMailPolicy, useMailProjects, useMailUnlock, useMailboxFolders, useMailboxSyncProgress, useMarkChatRead, useMarkDocumentShared, useMarkNotificationsRead, useMcpTools, useMeetingReadOnly, useMentionCandidates, useMessageDetails, useMessageTimer, useModelConnections, useMoveEvent, useMoveWorkspaceToProject, useMyConnectors, useNameEditor, useNotificationPreferences, useNotifications, useNotifyConversation, useOfflineDocumentIds, useOpenCallMeetingChat, useOpenSelectedWorkspace, useOpenViewerDocumentId, usePanelDataset, useParsedDocument, usePassageQuotes, usePasswordChange, usePasswordChangeForm, usePendingContacts, usePendingSyncCounts, usePendingSyncItems, usePeople, usePeopleSearch, usePlanQuote, usePlanWork, usePlanWorkspaceTransfer, usePreviewProjectPlanChange, useProcessingTask, useProcessingTasks, useProducts, useProfile, useProjectBillingPortal, useProjectConversationUsage, useProjectEvents, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, usePublishCalendar, useRecordingActions, useRecordingWindows, useRefreshCalendar, useRefreshConnectorsOnRunEnd, useRefreshDocuments, useRefreshProject, useRelatedDocuments, useRemoveChatMember, useRemoveDocTags, useRemoveDocumentsOffline, useRemoveModelConnection, useRemoveWorkspaceMembers, useRenameChat, useRenameFolder, useRequestEmailChange, useRequestWorkspaceAccess, useRespondToEvent, useResumeCalendarAccountConnect, useResumeWorkspaceTransfer, useRevokeAgentAccess, useRevokeCallInviteLink, useRooms, useRunConversation, useRunWorkflow, useSaveAgentConfig, useSaveBookingPage, useSaveCalendarSettings, useSaveConfig, useSaveConfigField, useSaveDashboard, useSaveMailDraft, useSaveModelConnection, useSaveSkill, useSaveToThread, useSavedDashboards, useSearchContacts, useSearchDatabaseRows, useSearchFacts, useSemanticSearch, useSendBackStep, useSendMail, useServerCallsEnabled, useServerCallsExperimental, useSessionPageTab, useSessionView, useSessions, useSetDeploymentHouseTemplate, useSetSkillVisibility, useSetTagValues, useSetWorkspaceHouseTemplate, useSetWorkspaceMemberRoles, useShareCalendar, useShellWorkspaces, useSignOut, useSignedInSession, useSimilarDocuments, useSkillSource, useSkills, useSlackConnection, useStartAgentSession, useStartCalendarAccountOAuth, useStartTaskQuery, useStartWorkspaceTransfer, useStorageActions, useStorageItemNames, useStorageItems, useStorageProjects, useStorageSnapshots, useStreamHandlers, useSubscribeCalendar, useSwitchWorkspace, useSyncAccountsOnOpen, useSyncCalendarAccount, useTagKindSchema, useTags, useTerminateSession, useThinkingContent, useThreadDocument, useThumbnails, useTopUpFirmPool, useTransientView, useTriggerDriveSync, useTriggerMailboxSync, useUnarchiveWorkspace, useUnlockModelConnections, useUnreadByPeer, useUnshareCalendar, useUpdateCalendar, useUpdateCalendarAccount, useUpdateContact, useUpdateConversation, useUpdateDatabase, useUpdateDatabaseRow, useUpdateDocTag, useUpdateDocuments, useUpdateEvent, useUpdateFact, useUpdateMailMessage, useUpdateProfile, useUpdateProjectAddonSettings, useUpdateProjectFields, useUpdateProjectNextPeriodAddons, useUpdateTag, useUpdateTagKindSchema, useUpdateUserSettings, useUpdateWorkflow, useUpdateWorkspace, useUploadDocuments, useUploadFiles, useUploadFromUrls, useUploadSkillFiles, useUploadUrls, useUserSettings, useUserUsageToday, useVideoRecorder, useWorkItems, useWorkNotifications, useWorkflowRuns, useWorkflows, useWorkspaceActivity, useWorkspaceArchive, useWorkspaceDocs, useWorkspaceExportDownload, useWorkspaceNotificationLevel, useWorkspaceProcessing, useWorkspaceRole, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceTrash, useWorkspaceUsers, useWorkspaces, userDisplayName, userInitials, viewsOfTable, waitForResponseId, wipeOfflineDocuments, withRelativePath, workflowStepOf, workspaceHouseTemplateId, writeSamples };
16110
+ declare function useSupportTickets(options?: {
16111
+ enabled?: boolean;
16112
+ }): _tanstack_react_query.UseQueryResult<NoInfer<{
16113
+ ticket_id: number;
16114
+ title: string;
16115
+ description: string;
16116
+ status: "received" | "in_progress" | "verifying" | "needs_input" | "resolved";
16117
+ resolution?: string | null;
16118
+ created_at: string;
16119
+ updated_at: string;
16120
+ rating?: _arbidocs_client.components["schemas"]["SupportRating"] | null;
16121
+ }[]>, Error>;
16122
+ declare function useSupportTicket(ticketId: number | undefined, options?: {
16123
+ enabled?: boolean;
16124
+ }): _tanstack_react_query.UseQueryResult<NoInfer<{
16125
+ ticket_id: number;
16126
+ title: string;
16127
+ description: string;
16128
+ status: "received" | "in_progress" | "verifying" | "needs_input" | "resolved";
16129
+ resolution?: string | null;
16130
+ created_at: string;
16131
+ updated_at: string;
16132
+ rating?: _arbidocs_client.components["schemas"]["SupportRating"] | null;
16133
+ }>, Error>;
16134
+ declare function useCreateSupportTicket(): _tanstack_react_query.UseMutationResult<{
16135
+ ticket_id: number;
16136
+ reference: string;
16137
+ }, Error, SupportTicketInput, unknown>;
16138
+ declare function useRateSupportTicket(): _tanstack_react_query.UseMutationResult<{
16139
+ ticket_id: number;
16140
+ title: string;
16141
+ description: string;
16142
+ status: "received" | "in_progress" | "verifying" | "needs_input" | "resolved";
16143
+ resolution?: string | null;
16144
+ created_at: string;
16145
+ updated_at: string;
16146
+ rating?: _arbidocs_client.components["schemas"]["SupportRating"] | null;
16147
+ }, Error, {
16148
+ ticketId: number;
16149
+ rating: SupportRating;
16150
+ }, unknown>;
16151
+
16152
+ export { AGENT_CONTROL_COMMANDS, AGGREGATE_FIELDS, ALLOWED_PORTAL_ORIGINS, ARCHIVE_POLL_MS, ASSISTANT_MENTION_LABEL, AUDIO_MIME_PREFERENCE, AUTO_CHAT_MODEL, type AccessRequestPayload, type AccessRequestRecipient, type AccountClient, type AccountClientContextValue, type AccountHost, type AccountSession, type AccountSignOutOptions, ActiveCall, type ActivityContent, type ActivityDescription, ActivityFeed, type ActivityFeedProps, type AddWorkspaceMembersRequest, type AgentAccessMode, type AgentConfigSections, type AgentControlMaps, AgentDmStatus, type AgentQuestionRef, type AgentRunControlState, type AggregateOp, type AggregatedDailyUsage, type AggregatedModelGroupUsage, AiActionCard, AiAnswer, type AiRunOptions, type AiTaskStatus, AppNotification, AppleIcon, type ApplyCallEventOptions, ArbiBotHeadIcon, ArbiBotIcon, type ArbiChatActions, type ArbiChatCitation, type ArbiChatDocument, type ArbiChatHost, type ArbiChatMessage, type ArbiChatMessageStatus, type ArbiChatPassage, type ArbiChatRole, type ArbiChatState, type ArbiChatStore, type ArbiChatStoreOptions, type ArbiChatThread, type ArbiConversation, type ArbiConversationDocument, type ArbiConversationGeneration, type ArbiDmTab, type ArbiDocumentCommentTarget, type ArbiDocumentSessionActions, type ArbiDocumentSessionState, type ArbiDocumentSessionStore, type ArbiDocumentSessionStoreOptions, type ArbiDocumentViewerState, type ArbiDocumentsPersist, type ArbiDraftDocument, type ArbiDraftKind, type ArbiDraftStorage, type ArbiFeature, type ArbiFeatures, type ArbiGridLayoutState, ArbiHost, type ArbiHostConfig, ArbiHostConnection, ArbiHostProps, type ArbiKeyValueStorage, type ArbiLayoutActions, type ArbiLayoutState, type ArbiLayoutStore, type ArbiLayoutStoreOptions, type ArbiMessageTimer, type ArbiPanelMode, type ArbiPanelsState, type ArbiPassageCitationState, type ArbiPickedPassage, type ArbiQueryClient, type ArbiQueryClientOptions, type ArbiQueryPersistOptions, type ArbiSavedChat, type ArbiSavedDocuments, type ArbiSavedLayout, type ArbiSessionParts, type ArbiSessionPersist, type ArbiSessionState, type ArbiSessionStatus, type ArbiSessionStore, type ArbiSessionStoreOptions, type ArbiShellState, type ArbiSidebarState, type ArbiSignedInSession, type ArbiTabsState, type ArbiThreadComposer, type ArbiThreadTab, type ArbiThreadTabShow, type ArbiThreadTabView, type ArbiThreadTabsController, type ArbiThreadTabsState, type ArbiThreadView, type ArbiViewerTab, type ArbiViewingDocument, type ArbiViewingDocumentInput, type ArbiViewsState, ArbiWebSocketProvider, type ArbiWebSocketProviderProps, type ArbiWorkspaceState, type ArbiWorkspaceStatus, type ArbiWorkspaceStorage, type ArbiWorkspaceStore, type ArbiWorkspaceStoreOptions, type ArbiWsState, type ArbiWsStatus, ArtifactCanvas, type AskAgain, type AspectOption, type AssignDocTagsInput, type AssistantMode, AudIcon, type AudioPiece, type AvatarCrop, type AvatarFileProblem, BOOT_GATE_TIMEOUT_MS, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_ACTION, BOX_SEAT_REFUSED_TITLE, BUILTIN_DATA_SOURCES, type BranchNavigation, type BranchPoint, type BrowserWorkspaceStorageOptions, type BuildArchiveInput, type BuiltArchive, CALL_MODERATION_TOPIC, CONVERSATION_SWITCH_MEASURE, type CalendarConnectorSupport, type CalendarNotificationMeta, type CalendarOfflineSupport, type CalendarPendingWrite, type CalendarSupport, type CalendarWriteOp, type CallInviteContact, type CallMutedNotice, type CallRoomEvents, type CallSlotMode, type CallUserPillProps, type CallsHost, type ChartSpec, type ChartType, type ChatArrival, ChatBubble, type ChatBubbleProps, ChatMemberKey, type ChatPost, ChatResponse, type ChatSummary, ChatThreadMessage, type Chunk, type ChunkActivation, type ChunkedRecorder, type ChunkedRecorderOptions, CitationRenderer, type CitationRendererProps, type CitationState, ClaudeIcon, CommandPalette, type CommandPaletteClassNames, type CommandPaletteProps, CommandPaletteProvider, type CommandPaletteProviderProps, type CommandPaletteValue, type ConfigUpdate, type ConversationActionsInput, type ConversationEvent, ConversationList, type ConversationListProps, ConversationScope, type ConversationScopeProps, type ConversationsSourceLabels, type CreateProjectVars, type CreateSkillPackOptions, type CreateTagInput, type CreateWorkspaceVars, type CreatedProject, type CropArea, type CropOutput, type CropResult, type CurrentWorkspace, DATABASE_RELATION_PICK_LIMIT, DATABASE_ROWS_PAGE, DEFAULT_ASPECT_OPTIONS, DEFAULT_CONVERSATIONS_SOURCE_LABELS, DEFAULT_DATABASE_SOURCE_LABELS, DEFAULT_DOCUMENTS_SOURCE_LABELS, DEFAULT_DOCUMENT_VIEWER_STATE, DEFAULT_PASSWORD_CHANGE_FORM_MESSAGES, DEFAULT_PROJECTS_SOURCE_LABELS, DEFAULT_USAGE_SOURCE_LABELS, DEFAULT_WORKSPACES_SOURCE_LABELS, DISMISSED_TASK_TTL_MS, DOCUMENTS_FIRST_PAGE_MEASURE, DOCUMENTS_FIRST_PAGE_SIZE, DOCUMENTS_PAGE_SIZE, type DashboardSpec, type DashboardStore, type DashboardsHost, type DataSource, type DataSourceFieldsState, type DataSourceOption, type DataSourceParam, type DataSourceParams, type DataSourceRef, type DataSourceRegistry, type DatabaseAggregateRequest, type DatabaseAggregateResult, type DatabaseDashboardStoreOptions, type DatabaseSourceLabels, type Dataset, type DatasetField, type DatasetFieldType, type DatasetFilter, type DatasetOrder, type DatasetQuery, type DatasetRow, type DatasetSort, type DatasetState, type DatasetValue, DateSeparator, type DateSeparatorProps, type DebouncedWriter, type DebouncedWriterOptions, type DeleteAccountBlocker, type DeleteAccountFlow, type DeletedDocument, type DeletedDocumentsPage, type DescribeCalendarNotificationOptions, type DescribeServerNotificationOptions, DictateContextValue, DmAvatar, type DmAvatarProps, type DmClassNames, DmComposer, type DmComposerProps, type DmConversation, type DmMessage, type DmUser, DocIcon, DocQaPanel, DocSearch, DocumentCardMenu, type DocumentCardMenuProps, type DocumentHostActions, type DocumentPerson, DocumentReview, type DocumentReviewProps, type DocumentRowChange, type DocumentStartItem, type DocumentsSourceLabels, type DocumentsSupport, type DraftKeyValueStore, DraftTitleControls, type DraftTitleControlsProps, EMPTY_CHAT_STATE, EMPTY_DOCUMENT_STATE, EMPTY_GROUP_LABEL, EMPTY_SESSION_STATE, EXPORT_SAMPLE_RATE, type EmailChange, type EmailPreferences, EmlIcon, type EnableDriveSyncVars, type EnableMailboxSyncVars, type EntitledFeature, EntityIconComponent, EntityVocabulary, type ExportDownloadRequest, type ExportFileKind, type ExtractedZip, FACTS_SEARCH_VIEW, FILE_TYPE_COLORS, FINISHED_DOCUMENT_STATUSES, FIRST_TOKEN_MEASURE, type FactListFilter, type FactSearchHit, type FactsSearch, type FactsSearchState, type FeatureEntitlements, type FeatureRefusal, type FeatureSource, type FeatureSwitch, FileIcon, type FilterOp, FireworksIcon, type FollowSaveCallbacks, GeminiIcon, type GenerateDocTagsInput, GitHubIcon, GoogleIcon, type GrantAgentAccessVars, HostConfigRecord, HtmlIcon, IN_FLIGHT_DOCUMENT_STATUSES, IdentityPurchase, IdentityStatus, IdentityStep, type IdentityVerificationApi, IdentityVerificationFlow, ImageCropModal, type ImageCropModalProps, ImageCropper, type ImageCropperProps, ImgIcon, IncomingCall, InlineMicButton, type InlineMicButtonProps, type InstallSkillPackVariables, JoinChoices, LIVE_UPDATE_TYPES, LinkedInIcon, type LiveTask, type LocalFeatureStore, type LocalFeatureStoreOptions, MAIL_DRAFT_REPLACED_EVENT, MAX_AVATAR_FILE_BYTES, MAX_DASHBOARD_SPEC_CHARS, MAX_SERIES, MAX_THREAD_TABS, MIN_NARRATION_DWELL_MS, MIN_QUEUED_MESSAGE_VISIBILITY_MS, MODEL_GROUP_LABELS, MUTED_DEDUPE_MS, type MailAccount, type MailAddress, type MailAttachment, type MailClient, type MailClientContextValue, type MailCompose, type MailDeliveryRecipient, type MailDeliveryStatus, type MailDeviceFallback, type MailDraftEditorRequest, type MailDraftEditorSession, type MailFetch, type MailFolder, type MailHost, type MailMessage, type MailMessageUpdate, MailOfflineUnavailableError, type MailPage, type MailPolicy, type MailProject, MeetingChatRef, MeetingChatTarget, MentionCandidate, type MessageArtifact, MessageArtifactCard, MessageMentionRef, type MessageTimerResult, MicRecordingOverlay, type MicRecordingOverlayProps, MicWaveformIndicator, type MicWaveformIndicatorProps, type ModeratedTrack, type MountDiditOptions, type NameEditor, type NotificationPreferencesModel, type NotificationTarget, type NotificationTypeMeta, NotifyVariant, type OfflineDocumentRecord, OpenAIIcon, type OpenedRecording, type OptimisticDocumentEdit, type OrderResolver, PENDING_SYNC_PREDICATE, PLAYBACK_LOOKAHEAD_MS, POLL_EVERY_MS, PROJECT_CREATION_DENIED_REASON, type PaletteNavItem, type PanelDatasetState, type PanelSpec, type ParsedChunk, type ParsedChunkMetadata, type ParsedDocument, type ParsedDocumentMetadata, type PassageResolvers, type PasswordChangeForm, type PasswordChangeFormMessages, type PasswordChangeVars, PdfIcon, type PendingSyncItem, type PeopleDirectory, type Person, PhotoCapture, type PhotoCaptureProps, type ProcessingTask, type ProfileView, type ProjectsSourceLabels, type ProjectsSourceOptions, type ProjectsUsageAggregate, type QueuedCalendarWrite, type QueuedMessage, type QueuedMessages, type QuoteResolver, RECORDING_SEGMENTER, RUN_WINDOW_MS, type RawPending, type RecordedChunk, type RecordingWindow, type RefusedUploadFile, type RelatedDocs, type RelatedDocsMap, type RelevancePatch, type RemoveDocTagsInput, type RenderMarkdown, type RequestAccessOptions, type RowsSourceDefinition, type RowsState, SEGMENT_FRAME_MS, SEGMENT_PRE_ROLL_MS, SHORT_PIECE_MERGE_GAP_MS, SIGNATURE_NOTIFICATION_TYPES, SIMILARITY_THRESHOLD, SLOW_AFTER_MS, STILL_WORKING, type SaveAgentConfigVars, type SavedDashboard, type SealedDraftStorageOptions, type SearchMode, SearchSession, SearchStatus, SegmenterConfig, type SemanticSearch, type SemanticSearchOptions, type SendMessageOptions, type SequencedRow, type SequencedTask, type ServerNotificationBellOptions, type ServerNotificationDescription, type ShellRecentWorkspaceItem, type ShellWorkspaceItem, type ShellWorkspaceKind, type ShellWorkspaceMember, type ShellWorkspaceSeed, type ShellWorkspaceSource, type SignatureNotificationType, type SkillPack, type SkillPackEntry, type StartTaskQuery, StorageActionError, type StorageActions, type StorageDeploymentUsage, type StorageItem, type StorageItemKind, type StorageItemState, type StorageItemsQuery, type StorageKindUsage, type StoragePersistOptions, type StorageProjectUsage, type StorageScope, type StorageSnapshot, type StreamHandlerContext, type StreamHandlerParams, type StreamHandlers, type StreamState, type SwitchWorkspaceTarget, TRANSFER_POLL_MS, type TableView, type TableViewTable, TaskThreadPendingError, type ThreadAccessors, ThreadBinding, type ThreadItem, type TimeBucket, type TimelinePart, type ToolResponses, type TrackCutter, type TrackPiece, type TranscriptExportLine, type TranscriptLineRef, type TranscriptSegmentMarker, type TransferConflictPolicy, type TransferKind, type TransferMode, type TransferPlan, type TransferScope, type TransferStatus, type TurnTarget, type TurnTools, TxtIcon, TypingIndicator, UPLOAD_ACCEPT, UPLOAD_MAX_FILE_SIZE, type UiStateStorage, type UnarchiveEstimate, type UpdateDocTagInput, type UpdateDocumentsInput, type UpdateProfileVars, type UploadDocumentsInput, type UploadFilesInput, type UploadFilesProgress, type UploadFilesResult, type UploadFromUrlsInput, type UploadFromUrlsResult, type UploadRefusal, type UploadUrlsInput, type UsageSourceLabels, type UsageTotals, type UseArbiShellWorkspacesOptions, type UseAskAgainOptions, type UseAvatarCropOptions, type UseCameraStreamResult, type UseConversationOptions, type UseDeleteAccountFlowOptions, type UseDownloadDocumentsOptions, type UseEmailChangeOptions, type UseFactsSearchOptions, type UseIdentityVerificationFlowOptions, type UseMessageTimerOptions, type UseNameEditorOptions, type UsePasswordChangeFormOptions, type UseShellWorkspacesOptions, type UseShellWorkspacesResult, type UseSwitchWorkspaceResult, type UseVideoRecorderResult, type UserResponse, type UserSettingFlag, type UserSettingsPatch, VIDEO_MIME_PREFERENCE, VidIcon, VideoCapture, type VideoCaptureProps, type VideoRecorderState, VoiceNoteRecorder, type VoiceNoteRecorderProps, WORKSPACE_LAST_OPENED_KEY, WORKSPACE_STORAGE_KEY, WORK_NOTIFICATION_LABELS, type WorkspaceArchive, type WorkspaceArchiveState, type WorkspaceDocument, type WorkspaceExport, type WorkspaceMember, type WorkspaceNotificationLevel, type WorkspaceProcessing, type WorkspaceRole, type WorkspaceSwitchContext, type WorkspaceUpdate, type WorkspacesSourceLabels, XlsIcon, type ZipExtractor, __resetPendingFinalCommitsForTests, __resetStreamingTokenBufferForTests, acceptRing, accountPath, addAssistantMessageToCache, addConversationToList, addUserMessageToCache, adjustTagCounts, adoptNewChatDocument, agentControl, aggregateDataset, aliasTakenMessage, allConversationThreads, annotateThread, announceMailDraftReplaced, announceTurnEnded, appendTokenToMessage, applyCallEvent, applyConversationEvent, applyFinalContextToMessage, applyLiveUpdate, applyNotificationRow, applyOptimisticDocumentEdit, applyOutputItemToMessage, applyTaskEvent, arbiAccountClient, arbiMailClient, archiveName, archivedWorkspaceMessage, assistantLabels, bindThreadDocument, boundDocumentOf, browserWorkspaceStorage, bucketOf, bucketRange, buildDocumentMetadataRows, buildMentionCandidates, buildPendingFirstTurn, buildPendingSyncItem, buildWorkspaceArchive, cacheThreadBinding, cachedAssistantMode, cachedMentionCandidates, cachedQuotaUsedUp, calendarNotificationMeta, callLink, callNotificationMeta, captureFrameAsBlob, chatTranscriptRef, claimOfflineQueue, classifyMediaError, clearLoadingState, clearSealedDrafts, clearUserInputRequest, clockTime, closePanelIn, commitFinalMessage, completeQueuedUserMessageByContent, composeArbiSessionStore, compositeFiles, compositeTrack, connectOAuthCalendarAccount, connectorErrorStatus, connectorReturnTo, conversationKey, createArbiChatStore, createArbiDocumentSessionStore, createArbiLayoutStore, createArbiQueryClient, createArbiSessionStore, createArbiWorkspaceStore, createChunkedRecorder, createConversationsSource, createDataSourceRegistry, createDatabaseSource, createDebouncedWriter, createDocumentsSource, createLocalFeatureStore, createMailClient, createMemoryDashboardStore, createMutedNotifier, createProjectsSource, createSealedDraftStorage, createSkillPack, createStoragePersist, createStreamHandlers, createTrackCutter, createUiStateStorage, createUsageSource, createWorkspaceSwitch, createWorkspacesSource, cropImage, cutAtPauses, dayKey, declineRing, decodeMono16k, defaultLayoutState, defaultMailAlias, defineRowsSource, deploymentUserMeta, describeActivity, describeCalendarNotification, describeServerNotification, discardStreamingTokensForMessage, disconnectAttachedRun, dmTabId, documentActivityMeta, documentActivityPhrase, documentDisplayName, docxMentionMeta, downloadRecoveryFile, dropTagFromCachedDocuments, encodeWav, ensureAssistantMessageLoading, entitlementRefusal, extensionFor, extractZipFile, fallbackFileName, fetchPart, fileAttachment, fileSafe, filesFromDrop, fillTimeGaps, filterRows, findConversation, finishEntityExtraction, floatToWav, flushOnPageExit, flushStreamingTokens, forgetDocuments, forgetUploadedDocumentFolder, formatConfigValidationError, formatElapsed, formatIdentityPrice, formatTranscriptMarkdown, getCachedDocuments, getInterjectionText, getNotificationTypeMeta, getOfflineDocument, getOrphanedLastMessage, getRelatedLabels, getRelatedTotal, getRunStartedAt, getThreadsQueryKey, getWorkspaceActionText, getWorkspaceKind, getWorkspaceSentPhrase, hasPendingFinalCommit, hasRecordingTranscript, hasVideoTrack, identityStepFor, inputRequestTitle, invalidateCalendarEvents, invalidateCalendars, invalidateCall, invalidateConversationActivity, invalidateConversationDetails, invalidateConversationLists, invalidateTagData, invalidateTagTables, isActivityKey, isAliasTakenError, isArchiveMoving, isCommentToPeople, isConversationListKey, isConversationShared, isDeploymentAdmin, isDeploymentUserNotification, isDocumentsLoading, isFullConfig, isMessageRunning, isNotificationRow, isOrphanedUserMessage, isPanelOpen, isQueuedCalendarWrite, isRecordingSegmentId, isReplayableArbiMutation, isRowNewer, isSignatureNotificationType, isStaleTaskUpdate, isTableViewOf, isTransferFinished, isTransferResumable, isUsageMetered, isWorkspaceArchivedError, isWorkspaceGuestOf, isWorkspaceNotificationType, isZipFile, joinFromPreJoin, layoutActionsOf, loadOfflineDocument, mailDraftIdFromContent, mailJson, markMessageAsFailed, markNarrationSettled, mergeHostConfig, migrateLegacyThreadDocuments, mountDiditVerification, mutedNoticeFromEvent, mutedNoticeFromPacket, mutedNoticeText, nextAliasSuggestion, nextViewingDocument, notificationUserName, onCallEvent, openAccessRequest, openCall, openPanelIn, openRecording, panelPlace, parseActivityContent, parseDashboardSpec, parseDeleteAccountBlockers, parseSavedChat, parseSavedDocuments, parseSavedLayout, partKey, partsDue, patchCachedDocument, patchConversation, patchConversationList, patchDocuments, patchWorkspaceTags, pendingChatModelSave, peopleDirectory, personOfUser, pickRecentWorkspaces, pickRecorderMimeType, playheadAt, postRecordingDocsToThread, postTranscriptToThread, prepareUploadFiles, queryOfChart, queuedMessages, readLocalFeature, readWorkspaceLastOpened, recordingFiles, recordingWindowsOf, recordsOf, redlineStats, refreshDocuments, refuseChatWhenOffline, registerArbiMutationDefaults, registerAttachedRun, removeConversationFromLists, removeSettledNarration, requestPersistentStorage, resetCalendarAccountSyncState, resetMessageContent, resolveActiveWorkspace, resolveConfigModel, resolveDocumentStatus, resolveReplyTarget, restoreLayout, restoreSavedDocuments, rollbackOptimisticDocumentEdit, safePortalUrl, saveRecordingFilesToThread, savedChatOf, savedDocumentsOf, savedLayoutOf, schedulePart, selectDraft, selectIsGenerating, selectViewingDocumentId, serializeDashboardSpec, serverCallsExperimental, serverNotificationBellEntry, setCachedDocument, setMessageContent, setUserInputRequest, settledByRows, signatureNotificationPhrase, signatureRequestMeta, sortTranscriptMessages, sortedParts, speakerTracks, speakerWav, splitIntoFiles, standalone, startChatCall, startContactsCall, startDmCall, startEntityExtraction, startThreadCall, startsMediaFile, stopDocumentsLoading, stripSpeakerPrefix, subscribeDocumentReads, subscribeDocumentRows, supersedeLiveTranscript, supersededTranscriptLines, supportsHouseTemplates, textToArtifact, threadBinding, threadEndingAtContains, threadTabId, threadTranscriptLines, threadTranscriptRef, timelineDurationMs, timelineOf, titleFromQuestion, toChatCitations, toNotificationPreferences, toProfileView, toRedlineMarkdown, toShellWorkspace, transcribeRecording, transcriptSegmentOf, updateMessageWithMetadata, updateUserMessageInCache, updateUserMessageStateInCache, uploadFolderOf, uploadedDocumentFolder, upsertDocuments, useAccountClient, useActOnStep, useActiveConfigId, useActivity, useAddChatMembers, useAddDatabaseRows, useAddHolidayCalendar, useAddProjectAddonBlock, useAddWorkspaceMembers, useAddonQuote, useAgentChats, useAgentConfig, useAgentDmStatus, useAgentModels, useAgentRunControl, useAgentSession, useAgentWorkspaces, useAgents, useAiTask, useAnswerAgentQuestion, useApplyChatModel, useArbi, useArbiConnected, useArbiHost, useArbiSession, useArbiSessionState, useArbiSessionStore, useArbiShellWorkspaces, useArbiWebSocket, useArbiWsContext, useArbiWsMessage, useArbiWsStatus, useArbiWsStore, useArchiveProgressPolling, useArchiveWorkspace, useAskAgain, useAssignDocTags, useAssistantName, useAssistantQuery, useAuthorizeLimits, useAutoSendDraft, useAvailableModels, useAvatarCrop, useBookingPages, useBootTimeout, useBoxRole, useBranchNavigation, useBuiltinCommands, useCalDavProfiles, useCalendarAccounts, useCalendarEvent, useCalendarEventByUid, useCalendarEvents, useCalendarInvitations, useCalendarOutbox, useCalendarOverlays, useCalendarSettings, useCalendarShares, useCalendarSupport, useCalendars, useCall, useCallInviteLinks, useCallRecording, useCallRecordings, useCallTranscriptionAvailable, useCallsConfig, useCallsEnabled, useCameraStream, useCanCreateProjects, useCanEditShared, useCanHostCalls, useCancelDriveSync, useCancelMailboxSync, useCancelManyPendingSync, useCancelProjectSubscription, useCancelWorkspaceTransfer, useChangeProjectPlan, useChargeWatch, useChatArrivals, useChatPost, useChatSummaries, useChatThread, useChatUnreadTotal, useChats, useClaimNativeAlias, useClaimSecureMail, useCloseAgentSession, useCommandPalette, useConfig, useConfigSchema, useConfigs, useConfirmEmailChange, useConnectCalDavAccount, useConnectMailAccount, useConnectOAuthAccount, useConnectRunStream, useConnectorAutoSync, useConnectorCatalog, useConnectorVendorVisibility, useContacts, useConversation, useConversationActions, useConversationActivity, useConversationData, useConversationDocuments, useConversationIsShared, useConversationItems, useConversationPendingAuth, useConversationSearch, useConversationSettings, useConversationThreads, useConversationTurn, useConversationUsage, useConversations, useCreateAgent, useCreateCalendar, useCreateContact, useCreateDatabase, useCreateEvent, useCreateFact, useCreateFacts, useCreateGroupChat, useCreateProject, useCreateProjectCheckout, useCreateRoom, useCreateSupportTicket, useCreateTag, useCreateWork, useCreateWorkflow, useCreateWorkspace, useCurrentSessionId, useCurrentUser, useCurrentWorkspace, useDashboardStore, useDataSources, useDatabase, useDatabaseAggregate, useDatabaseDashboardStore, useDatabaseRows, useDatabases, useDecideCounter, useDeleteAccount, useDeleteAccountFlow, useDeleteAgents, useDeleteBookingPage, useDeleteCalendar, useDeleteChatMessage, useDeleteConfig, useDeleteContact, useDeleteConversation, useDeleteDashboard, useDeleteDatabase, useDeleteDatabaseRows, useDeleteDocuments, useDeleteEvent, useDeleteFact, useDeleteMessage, useDeleteNotifications, useDeleteProject, useDeleteSkill, useDeleteTag, useDeleteWorkflow, useDeleteWorkspaces, useDeploymentDomain, useDirectModelUsage, useDisconnectCalendarAccount, useDisconnectConnector, useDisconnectMailAccount, useDisconnectSlack, useDismissedTips, useDocument, useDocumentAutoAdd, useDocumentHostActions, useDocumentPendingSync, useDocumentThumbnails, useDocumentVersionList, useDocuments, useDocumentsById, useDocumentsLoading, useDocumentsSupport, useDownloadDocuments, useDriveFolderChildren, useDriveFolderDocCount, useDriveFolders, useDriveSyncEstimate, useDriveSyncProgress, useEmailChange, useEnableDriveSync, useEnableMailboxSync, useEntitlements, useEntityExtractionDocIds, useExportDatabase, useExtractEntities, useFacts, useFactsSearch, useFeature, useFeatureSwitch, useFetchCalendarEvent, useFilteredProjects, useFinaliseTranslation, useFindTime, useFirmPool, useFollowThread, useFreeBusy, useGenerateAgentAvatar, useGenerateDocTags, useGrantAgentAccess, useHealth, useHolidayCountries, useHouseTemplateCandidates, useIdentityVerification, useIdentityVerificationFlow, useImportCalendar, useImportContacts, useImportDatabase, useImportDatabaseRows, useInstallSkillPack, useInvalidateAfterTransfer, useInvalidateEntitlements, useInvalidateProjects, useInvalidateStorage, useInvalidateTagData, useInviteContacts, useIsCreatingTag, useIsEntitled, useIsSlow, useIsWorkspaceOwner, useKeepDocumentsOffline, useLinkContact, useLinkMentions, useMailAccounts, useMailAttachmentText, useMailCache, useMailClient, useMailDraftCompose, useMailDraftEditor, useMailDraftReplaced, useMailFolders, useMailMessage, useMailMessages, useMailOnline, useMailPolicy, useMailProjects, useMailUnlock, useMailboxFolders, useMailboxSyncProgress, useMarkChatRead, useMarkDocumentShared, useMarkNotificationsRead, useMcpTools, useMeetingReadOnly, useMentionCandidates, useMessageDetails, useMessageTimer, useModelConnections, useMoveEvent, useMoveWorkspaceToProject, useMyConnectors, useNameEditor, useNotificationPreferences, useNotifications, useNotifyConversation, useOfflineDocumentIds, useOpenCallMeetingChat, useOpenSelectedWorkspace, useOpenViewerDocumentId, usePanelDataset, useParsedDocument, usePassageQuotes, usePasswordChange, usePasswordChangeForm, usePendingSyncCounts, usePendingSyncItems, usePeople, usePeopleSearch, usePlanQuote, usePlanWork, usePlanWorkspaceTransfer, usePreviewProjectPlanChange, useProcessingTask, useProcessingTasks, useProducts, useProfile, useProjectBillingPortal, useProjectConversationUsage, useProjectEvents, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, usePublishCalendar, useRateSupportTicket, useRecordingActions, useRecordingWindows, useRefreshCalendar, useRefreshConnectorsOnRunEnd, useRefreshDocuments, useRefreshProject, useRelatedDocuments, useRemoveChatMember, useRemoveDocTags, useRemoveDocumentsOffline, useRemoveModelConnection, useRemoveWorkspaceMembers, useRenameChat, useRenameFolder, useRequestEmailChange, useRequestWorkspaceAccess, useRespondToEvent, useResumeCalendarAccountConnect, useResumeWorkspaceTransfer, useRevokeAgentAccess, useRevokeCallInviteLink, useRooms, useRunConversation, useRunWorkflow, useSaveAgentConfig, useSaveBookingPage, useSaveCalendarSettings, useSaveConfig, useSaveConfigField, useSaveDashboard, useSaveMailDraft, useSaveModelConnection, useSaveSkill, useSaveToThread, useSavedDashboards, useSearchContacts, useSearchDatabaseRows, useSearchFacts, useSemanticSearch, useSendBackStep, useSendMail, useServerCallsEnabled, useServerCallsExperimental, useSessionPageTab, useSessionView, useSessions, useSetDeploymentHouseTemplate, useSetSkillVisibility, useSetTagValues, useSetWorkspaceHouseTemplate, useSetWorkspaceMemberRoles, useShareCalendar, useShellWorkspaces, useSignOut, useSignedInSession, useSimilarDocuments, useSkillSource, useSkills, useSlackConnection, useStartAgentSession, useStartCalendarAccountOAuth, useStartTaskQuery, useStartWorkspaceTransfer, useStorageActions, useStorageItemNames, useStorageItems, useStorageProjects, useStorageSnapshots, useStreamHandlers, useSubscribeCalendar, useSupportTicket, useSupportTickets, useSwitchWorkspace, useSyncAccountsOnOpen, useSyncCalendarAccount, useTagKindSchema, useTags, useTerminateSession, useThinkingContent, useThreadDocument, useThumbnails, useTopUpFirmPool, useTransientView, useTriggerDriveSync, useTriggerMailboxSync, useUnarchiveWorkspace, useUnlockModelConnections, useUnreadByPeer, useUnshareCalendar, useUpdateCalendar, useUpdateCalendarAccount, useUpdateContact, useUpdateConversation, useUpdateDatabase, useUpdateDatabaseRow, useUpdateDocTag, useUpdateDocuments, useUpdateEvent, useUpdateFact, useUpdateMailMessage, useUpdateProfile, useUpdateProjectAddonSettings, useUpdateProjectFields, useUpdateProjectNextPeriodAddons, useUpdateTag, useUpdateTagKindSchema, useUpdateUserSettings, useUpdateWorkflow, useUpdateWorkspace, useUploadDocuments, useUploadFiles, useUploadFromUrls, useUploadSkillFiles, useUploadUrls, useUserSettings, useUserUsageToday, useVideoRecorder, useWorkItems, useWorkNotifications, useWorkflowRuns, useWorkflows, useWorkspaceActivity, useWorkspaceArchive, useWorkspaceDocs, useWorkspaceExportDownload, useWorkspaceNotificationLevel, useWorkspaceProcessing, useWorkspaceRole, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceTrash, useWorkspaceUsers, useWorkspaces, userDisplayName, userInitials, viewsOfTable, waitForResponseId, wipeOfflineDocuments, withRelativePath, workflowStepOf, workspaceHouseTemplateId, writeSamples };