> ## Documentation Index
> Fetch the complete documentation index at: https://velt.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# React Hooks Index

# Comments

#### useCommentUtils()

Hook to access comment utilities

* Params: `void`
* Returns: `CommentElement`
* Related API Method: `client.getCommentElement()`
* [Full Documentation →](/api-reference/sdk/api/api-methods#client)

### Threads

#### useAddCommentAnnotation()

Hook to add a comment annotation

* Params: [AddCommentAnnotationRequest](/api-reference/sdk/models/data-models#addcommentannotationrequest)
* Returns: `addCommentAnnotation()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#addcommentannotation)

#### useDeleteCommentAnnotation()

Hook to delete a comment annotation

* Params: [DeleteCommentAnnotationRequest](/api-reference/sdk/models/data-models#deletecommentannotationrequest)
* Returns: `deleteCommentAnnotation()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#deletecommentannotation)

#### useCommentAnnotationsCount()

Hook to get total and unread comment annotations count

* Params: [CommentRequestQuery](/api-reference/sdk/models/data-models#commentrequestquery) (optional)
* Returns: [GetCommentAnnotationsCountResponse](/api-reference/sdk/models/data-models#getcommentannotationscountresponse)
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getcommentannotationscount)

#### useUnreadCommentAnnotationCountByLocationId()

Hook to get unread comment annotation count by location

* Params: `locationId: string`
* Returns: `UnreadCommentsCount | null`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getunreadcommentannotationcountbylocationid)

#### useGetCommentAnnotations()

Hook to get all the comment annotations for all the specified documents

* Params: [CommentRequestQuery](/api-reference/sdk/models/data-models#commentrequestquery) (optional)
* Returns: [GetCommentAnnotationsResponse](/api-reference/sdk/models/data-models#getcommentannotationsresponse)
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getcommentannotations)

#### useCommentAnnotationById()

Hook to get a specific comment annotation

* Params: `{ annotationId: string, documentId?: string }`
* Returns: `CommentAnnotation`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getcommentannotationbyid)

#### useSetContextProvider()

Hook to set a context provider function for comment annotations

* Returns: `{ setContextProvider: (provider:` [`CommentContextProvider`](/api-reference/sdk/models/data-models#commentcontextprovider) `| null) => void }`
* Related API Method: `commentElement.setContextProvider()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#setcontextprovider)

### Messages

#### useAddComment()

Hook to add a comment to a specific annotation

* Params: [AddCommentRequest](/api-reference/sdk/models/data-models#addcommentrequest)
* Returns: `addComment()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#addcomment)

#### useUpdateComment()

Hook to update a comment in a specific annotation

* Params: [UpdateCommentRequest](/api-reference/sdk/models/data-models#updatecommentrequest)
* Returns: `updateComment()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#updatecomment)

#### useDeleteComment()

Hook to delete a comment from a specific annotation

* Params: [DeleteCommentRequest](/api-reference/sdk/models/data-models#deletecommentrequest)
* Returns: `deleteComment()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#deletecomment)

#### useGetComment()

Hook to get comments from a specific annotation

* Params: [GetCommentRequest](/api-reference/sdk/models/data-models#getcommentrequest)
* Returns: `getComment()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getcomment)

#### useUnreadCommentCountOnCurrentDocument()

Hook to get number of unread comments on current document

* Params: `void`
* Returns: `UnreadCommentsCount | null`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getunreadcommentcountoncurrentdocument)

#### useUnreadCommentCountByLocationId()

Hook to get number of unread comments by location

* Params: `locationId: string`
* Returns: `UnreadCommentsCount | null`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getunreadcommentcountbylocationid)

#### useUnreadCommentCountByAnnotationId()

Hook to get number of unread comments by annotation

* Params: `annotationId: string`
* Returns: `number`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getunreadcommentcountbyannotationid)

### @Mentions

#### useContactUtils()

Hook to access contact utility methods

* Returns: `ContactElement` with methods for managing contacts
* [Full Documentation →](/async-collaboration/comments/customize-behavior#updatecontactlist)

#### useAssignUser()

Hook to assign a user to a comment annotation

* Params: [AssignUserRequest](/api-reference/sdk/models/data-models#assignuserrequest)
* Returns: `assignUser()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#assignuser)

#### useContactSelected()

Hook to handle contact selection events

* Returns: `User`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#oncontactselected)

#### useContactList()

Hook to subscribe to the list of users added to organization, folder, document, user groups or the ones overwritten using the `updateContactList` API.

* Returns: [GetContactListResponse](/api-reference/sdk/models/data-models#getcontactlistresponse)
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getcontactlist)

#### useSubscribeCommentAnnotation()

Hook to subscribe to a comment annotation

* Params: [SubscribeCommentAnnotationRequest](/api-reference/sdk/models/data-models#subscribecommentannotationrequest)
* Returns: `subscribeCommentAnnotation()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#subscribecommentannotation)

#### useUnsubscribeCommentAnnotation()

Hook to unsubscribe from a comment annotation

* Params: [UnsubscribeCommentAnnotationRequest](/api-reference/sdk/models/data-models#unsubscribecommentannotationrequest)
* Returns: `unsubscribeCommentAnnotation()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#unsubscribecommentannotation)

### Custom Lists

#### useAutocompleteUtils()

Hook to access autocomplete utilities for custom lists in comments

* Returns: `AutocompleteElement`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#createcustomlistdataoncomment)

#### useAutocompleteChipClick()

Hook to handle clicks on autocomplete chips in comments

* Returns: `AutocompleteItem` data when a chip is clicked
* [Full Documentation →](/async-collaboration/comments/customize-behavior#createcustomlistdataoncomment)

### Event Subscription

#### useCommentEventCallback()

Hook to subscribe to comment events

* Params: `eventType: string`. [Here](/async-collaboration/comments/customize-behavior#on) is the list of events you can subscribe to.
* Returns: Comment Event Object. It will return one of the objects from [here](/api-reference/sdk/models/data-models#comments)
* [Full Documentation →](/async-collaboration/comments/customize-behavior#on)

### Attachments

#### useAddAttachment()

Hook to add an attachment to a comment annotation

* Params: [AddAttachmentRequest](/api-reference/sdk/models/data-models#addattachmentrequest)
* Returns: `addAttachment()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#addattachment)

#### useDeleteAttachment()

Hook to delete an attachment from a comment annotation

* Params: [DeleteAttachmentRequest](/api-reference/sdk/models/data-models#deleteattachmentrequest)
* Returns: `deleteAttachment()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#deleteattachment)

#### useGetAttachment()

Hook to get attachments from a comment annotation

* Params: [GetAttachmentRequest](/api-reference/sdk/models/data-models#getattachmentrequest)
* Returns: `getAttachment()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getattachment)

### Reactions

#### useAddReaction()

Hook to add a reaction to a comment

* Params: [AddReactionRequest](/api-reference/sdk/models/data-models#addreactionrequest)
* Returns: `addReaction()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#addreaction)

#### useDeleteReaction()

Hook to delete a reaction from a comment

* Params: [DeleteReactionRequest](/api-reference/sdk/models/data-models#deletereactionrequest)
* Returns: `deleteReaction()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#deletereaction)

#### useToggleReaction()

Hook to toggle a reaction on a comment

* Params: [ToggleReactionRequest](/api-reference/sdk/models/data-models#togglereactionrequest)
* Returns: `toggleReaction()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#togglereaction)

### Status & Priority

#### useUpdateStatus()

Hook to update the status of a comment annotation

* Params: [UpdateStatusRequest](/api-reference/sdk/models/data-models#updatestatusrequest)
* Returns: `updateStatus()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#updatestatus)

#### useResolveCommentAnnotation()

Hook to resolve a comment annotation

* Params: [ResolveCommentAnnotationRequest](/api-reference/sdk/models/data-models#resolvecommentannotationrequest)
* Returns: `resolveCommentAnnotation()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#resolvecommentannotation)

#### useUpdatePriority()

Hook to update the priority of a comment annotation

* Params: [UpdatePriorityRequest](/api-reference/sdk/models/data-models#updatepriorityrequest)
* Returns: `updatePriority()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#updatepriority)

### Recording

#### useDeleteRecording()

Hook to delete a recording from a comment annotation

* Params: [DeleteRecordingRequest](/api-reference/sdk/models/data-models#deleterecordingrequest)
* Returns: `deleteRecording()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#deleterecording)

#### useGetRecording()

Hook to get recordings from a comment annotation

* Params: [GetRecordingRequest](/api-reference/sdk/models/data-models#getrecordingrequest)
* Returns: `getRecording()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getrecording)

### Deep Link

#### useGetLink()

Hook to get a link to a specific comment annotation

* Params: [GetLinkRequest](/api-reference/sdk/models/data-models#getlinkrequest)
* Returns: `getLink()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#getlink)

#### useCopyLink()

Hook to copy a comment annotation link to clipboard

* Params: [CopyLinkRequest](/api-reference/sdk/models/data-models#copylinkrequest)
* Returns: `copyLink()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#copylink)

### Navigation

#### useCommentSelectionChangeHandler()

Hook to subscribe to comment selection changes

* Returns: `CommentSelectionChangeData` with:
  * `selected: boolean`
  * `annotation: CommentAnnotation`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#oncommentselectionchange)

### UI

#### useUiState()

Hook to read and update UI state for use in wireframes, `VeltIf`, and `VeltData`.

* Returns: `{ uiState: Record<string, any> | null, setUiState: (data: Record<string, any>) => void }`
* [Full Documentation →](/ui-customization/template-variables)

```jsx theme={null}
const { uiState, setUiState } = useUiState();

useEffect(() => {
  console.log('uiState: ', uiState);
}, [uiState]);

// Update values
setUiState({ a: 1, b: 2 });
// Reset fields to null
setUiState({ a: null, b: null });
```

#### useCommentDialogSidebarClickHandler()

Hook to handle clicks on the sidebar button in the comment dialog

* Returns: Event data
* [Full Documentation →](/async-collaboration/comments/customize-behavior#onsidebarbuttononcommentdialogclick)

### Moderation

#### useApproveCommentAnnotation()

Hook to approve comment annotations in moderator mode

* Params: [ApproveCommentAnnotationRequest](/api-reference/sdk/models/data-models#approvecommentannotationrequest)
* Returns: `approveCommentAnnotation()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#approvecommentannotation)

#### useAcceptCommentAnnotation()

Hook to accept comment annotations in suggestion mode

* Params: [AcceptCommentAnnotationRequest](/api-reference/sdk/models/data-models#acceptcommentannotationrequest)
* Returns: `acceptCommentAnnotation()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#acceptcommentannotation)

#### useRejectCommentAnnotation()

Hook to reject comment annotations in suggestion mode

* Params: [RejectCommentAnnotationRequest](/api-reference/sdk/models/data-models#rejectcommentannotationrequest)
* Returns: `rejectCommentAnnotation()`
* [Full Documentation →](/async-collaboration/comments/customize-behavior#rejectcommentannotation)

### Comment Tool

#### useCommentModeState()

Hook to track the current state of comment mode

* Returns: `boolean` indicating if comment mode is active
* Automatically updates when comment mode changes
* [Full Documentation →](/async-collaboration/comments/customize-behavior#oncommentmodechange)

# Notifications

#### useNotificationSettings()

Hook to get and update notification settings for the current user

* Returns: `{ setSettingsInitialConfig, setSettings, settings }`
* [Full Documentation →](/async-collaboration/notifications/customize-behavior#setsettingsinitialconfig)

#### useNotificationUtils()

Hook to access notification element for utility methods

* Returns: `NotificationElement`
* [Full Documentation →](/async-collaboration/notifications/customize-behavior#settabconfig)

#### useNotificationsData()

Hook to access notifications data for the current user

* Params:
  * query: Optional. [`GetNotificationsDataQuery`](/api-reference/sdk/models/data-models#getnotificationsdataquery)
    * `type`: Filter for notification type: all, for you, or documents.
      * `forYou`: returns notifications where the current user is involved.
      * `all` / `documents`: returns all notifications from the documents the user has access to.
* Returns: Array of [`Notification`](/api-reference/sdk/models/data-models#notification) objects
* Automatically updates when notifications change
* [Full Documentation →](/async-collaboration/notifications/customize-behavior#getnotificationsdata)

#### useUnreadNotificationsCount()

Hook to get count of unread notifications

* Returns: Object with counts by tab
  ```typescript theme={null}
  {
    forYou: number,  // Unread in "For You" tab
    all: number      // Unread in "All" tab
  }
  ```
* Automatically updates when unread status changes
* [Full Documentation →](/async-collaboration/notifications/customize-behavior#getunreadnotificationscount)

# Inline Reactions

#### useReactionElement()

Hook to access reaction element for utility methods

* Returns: `ReactionElement`
* [Full Documentation →](/async-collaboration/reactions/customize-behavior#setcustomreactions)

# Recorder

#### useRecorderUtils()

Hook to access recorder element for utility methods

* Returns: `RecorderElement`
* [Full Documentation →](/async-collaboration/recorder/customize-behavior#enablerecordingcountdown)

#### useRecorderEventCallback()

Hook to subscribe to recorder events

* Params: `eventType: string`. [Here](/api-reference/sdk/models/data-models#recorder) is the list of events you can subscribe to.
* Returns: Recorder Event Object. It will return one of the objects from [here](/api-reference/sdk/models/data-models#recorder)
* [Full Documentation →](/async-collaboration/recorder/customize-behavior#on)

#### useRecordings()

Subscribe to all recording data from either the current document or specified recorder IDs.

* Params: [RecorderRequestQuery](/api-reference/sdk/models/data-models#recorderrequestquery) (optional)
* Returns: [`Observable<GetRecordingsResponse[]>`](/api-reference/sdk/models/data-models#getrecordingsresponse)
* [Full Documentation →](/async-collaboration/recorder/customize-behavior#getrecordings)

# View Analytics

#### useViewsElement()

Hook to access views element for utility methods

* Returns: `ViewsElement`
* [Full Documentation →](/async-collaboration/view-analytics/customize-behavior)

#### useUniqueViewsByUser()

Hook to get unique views grouped by user

* Params: `locationId: string`
* Returns: Array of view analytics data by user
* [Full Documentation →](/async-collaboration/view-analytics/customize-behavior#getuniqueviewsbyuser)

#### useUniqueViewsByDate()

Hook to get unique views grouped by date

* Params: `locationId: string`
* Returns: Array of view analytics data by date
* [Full Documentation →](/async-collaboration/view-analytics/customize-behavior#getuniqueviewsbydate)

# Live State Sync

#### useLiveStateSyncUtils()

Hook to access live state sync utilities

* Params: `void`
* Returns: `LiveStateSyncElement`
* Related API Method: `client.getLiveStateSyncElement()`
* [Full Documentation →](/realtime-collaboration/live-state-sync/setup)

#### useLiveStateData()

Hook to get live state data

* Params: `string`
* Returns: `any`
* Related API Method: `liveStateSyncElement.getLiveStateData()`
* [Full Documentation →](/realtime-collaboration/live-state-sync/setup)

#### useSetLiveStateData()

Hook to set live state data

* Params:
  * `liveStateDataId`: `string`
  * `liveStateData`: `any`
  * `config`: `SetLiveStateDataConfig`
* Returns: `void`
* Related API Method: `liveStateSyncElement.setLiveStateData()`
* [Full Documentation →](/realtime-collaboration/live-state-sync/setup)

#### useLiveState()

Hook to sync state variables across clients in real-time (similar to React's useState)

* Params:
  * `uniqueId`: string - Unique identifier to sync across screens
  * `initialValue`: any - Initial value of the state
  * `options?`: object
    * `syncDuration`: number - Debounce duration in ms (default: 50)
    * `resetLiveState`: boolean - Reset state on init (default: false)
    * `listenToNewChangesOnly`: boolean - Only listen to new changes (default: false)
* Returns: `[value, setValue, serverConnectionState]`
  * `value`: Current state value
  * `setValue`: Function to update state
  * `serverConnectionState`: Current server connection state
* [Full Documentation →](/realtime-collaboration/live-state-sync/setup)

#### useServerConnectionStateChangeHandler()

Hook to listen to server connection state changes

* Params: none
* Returns: `ServerConnectionState` - One of:
  * `'online'` - Server connection is active
  * `'offline'` - Server connection is lost
  * `'pendingInit'` - Connection initialization pending
  * `'pendingData'` - Waiting for data from server
* Related API Method: `liveStateSyncElement.onServerConnectionStateChange()`
* [Full Documentation →](/realtime-collaboration/live-state-sync/setup)

# Single Editor Mode

#### useUserEditorState()

Hook to check if current user is the editor

* Returns: `UserEditorAccess` object with:
  * `isEditor`: boolean indicating if user is editor
  * `isEditorOnCurrentTab`: boolean indicating if user is editor on current tab
* [Full Documentation →](/realtime-collaboration/single-editor-mode/setup)

#### useEditor()

Hook to get the current editor

* Returns: `User` object with editor details (email, name, photoUrl, userId)
* [Full Documentation →](/realtime-collaboration/single-editor-mode/setup)

#### useEditorAccessRequestHandler()

Hook to handle editor access requests

* Returns: Object with:
  * `requestStatus`: 'requested' when access is requested
  * `requestedBy`: User object of requester
* Returns `null` if user is not editor or request is canceled
* [Full Documentation →](/realtime-collaboration/single-editor-mode/setup)

#### useEditorAccessTimer()

Hook to track editor access request timer state

* Returns: Object with:
  * `state`: 'idle' | 'inProgress' | 'completed'
  * `durationLeft`: number of seconds remaining
* Useful for building custom UI for access requests
* [Full Documentation →](/realtime-collaboration/single-editor-mode/setup)

# Presence

#### usePresenceEventCallback()

Hook to subscribe to presence events

* Params: `eventType: string`. [Here](/api-reference/sdk/models/data-models#presence) is the list of events you can subscribe to.
* Returns: Presence Event Object. It will return one of the objects from [here](/api-reference/sdk/models/data-models#presence)
* [Full Documentation →](/realtime-collaboration/presence/customize-behavior#on)

#### usePresenceUtils()

Hook to access presence element for presence control methods

* Returns: `PresenceElement`
* [Full Documentation →](/realtime-collaboration/presence/customize-behavior#setinactivitytime)

#### usePresenceData()

Hook to subscribe to presence data

* Params: `PresenceRequestQuery`
* Returns: `Observable<GetPresenceDataResponse>`
* [Full Documentation →](/realtime-collaboration/presence/customize-behavior#getdata)

# Cursor

#### useCursorUtils()

Hook to access cursor element for cursor utility methods

* Returns: `CursorElement`

#### useCursorUsers()

Hook to get online users with cursors activated

* Params: `void`
* Returns: `User[]`
* Related API Method: `cursorElement.getOnlineUsersOnCurrentDocument()`
* [Full Documentation →](/realtime-collaboration/cursors/customize-behavior#getonlineusersoncurrentdocument)

# Live Selection

#### useLiveSelectionUtils()

Hook to access live selection element for control methods

* Returns: `LiveSelectionElement`
* [Full Documentation →](/realtime-collaboration/live-selection/customize-behavior#enabledefaultelementsTracking)

#### useLiveSelectionDataHandler()

Hook to get live selection data for the current document

* Returns: `LiveSelectionData`
* Related API Method: `liveSelectionElement.getLiveSelectionData()`
* [Full Documentation →](/realtime-collaboration/live-selection/customize-behavior#getliveselectiondata)

# Huddle

#### useHuddleUtils()

Hook to access huddle utilities

* Params: `void`
* Returns: `HuddleElement`
* Related API Method: `client.getHuddleElement()`
* [Full Documentation →](/realtime-collaboration/huddle/customize-behavior)

# AI

#### useAIRewriterUtils()

Hook to access AI rewriter utilities

* Params: `void`
* Returns: `RewriterElement`
* Related API Method: `client.getRewriterElement()`

# Core

### Client

#### useVeltClient()

Hook to access the Velt client instance

* Returns: Object with:
  * `client`: Velt

#### useVeltInitState()

Hook to get Velt initialization state

* Params: `void`
* Returns: `boolean`
* Related API Method: `client.getVeltInitState()`
* [Full Documentation →](/get-started/advanced)

#### useHeartbeat()

Hook to subscribe to user-specific heartbeat data

* Params: [`HeartbeatConfig`](/api-reference/sdk/models/data-models#heartbeatconfig) (optional)
* Returns: [`Observable<GetHeartbeatResponse>`](/api-reference/sdk/models/data-models#getheartbeatresponse)
* [Full Documentation →](/realtime-collaboration/presence/overview#heartbeat-monitoring)

### Authentication

#### useIdentify()

Hook to authenticate a user with Velt

* Params:
  * `user`: `User`
  * `options?`: Object:
    * `authToken?`: JWT token for additional security
    * `forceReset?`: Force re-login (default: false)
* Must be called within a child component of VeltProvider
* Asynchronous operation
* [Full Documentation →](/get-started/advanced)

#### useCurrentUser()

Hook to subscribe to changes in the current user object

* Params: `void`
* Returns: `User | null`
* Related API Method: `client.getCurrentUser()`
* [Full Documentation →](/key-concepts/overview#get-current-user)

### Document

#### useSetDocuments()

Hook to initialize multiple documents at once

* Params:
  * `documents`: [Document\[\]](/api-reference/sdk/models/data-models#document)
  * `options?`: [SetDocumentsRequestOptions](/api-reference/sdk/models/data-models#setdocumentsrequestoptions)
* [Full Documentation →](/key-concepts/overview#set-multiple-documents)

#### useSetDocument()

Hook to initialize a document for collaboration

* Params:
  * `documentId`: string
  * `metadata?`: [DocumentMetadata](/api-reference/sdk/models/data-models#documentmetadata)
* [Full Documentation →](/key-concepts/overview#set-a-single-document)

#### useUnsetDocuments()

Hook to unsubscribe from all documents at once.

* Use when Velt features are not needed
* Cleans up document-specific resources
* [Full Documentation →](/key-concepts/overview#unset-multiple-documents)

### Location

#### useSetLocation()

Hook to set the current location context. Used to define specific areas within a document.

* Params:
  * `location`: Location object with:
    * `id`: Required unique identifier
    * `locationName?`: Optional display name for UI components
    * `version?`: Optional version object with:
      * `id`: Version identifier
      * `name`: Version display name
    * Additional custom key/value pairs
  * `isAdditional?`: Boolean to add additional locations
    * `false` (default): Set this as the root location
    * `true`: Add as additional location
* [Full Documentation →](/key-concepts/overview#set-location)

### Event Subscription

#### useVeltEventCallback()

Hook to subscribe to Velt core events

* Params: `eventType: string`. [Here](/api-reference/sdk/models/data-models#client) is the list of events you can subscribe to.
* Returns: `VeltEventTypesMap[T]`. It will return one of the objects from [here](/api-reference/sdk/models/data-models#client)
