import { Client, AuthenticationType } from '@vonage/server-client'; import { Member } from './types/member.js'; import { ListConversationsParameters } from './types/parameters/listConversationsParameters.js'; import { ListEventParameters } from './types/parameters/listEventParameters.js'; import { ListMemberParameters } from './types/parameters/listMemberParameters.js'; import { ListSessionParameters } from './types/parameters/listSessionParameters.js'; import { UpdateMemberParameters } from './types/parameters/updateMemberParameters.js'; import { Conversation } from './types/conversation.js'; import { ConversationPage } from './types/conversationPage.js'; import { Event } from './types/event.js'; import { EventPage } from './types/eventPage.js'; import { MemberPage } from './types/memberPage.js'; import { Session } from './types/session.js'; import { SessionPage } from './types/sessionPage.js'; import '@vonage/users'; import './enums/memberState.js'; import './types/anyChannel.js'; import './types/phoneNumberChannel.js'; import './enums/channelType.js'; import './types/sipChannel.js'; import './types/appChannel.js'; import './types/websocketChannel.js'; import './types/vbcChannel.js'; import './types/audioSettings.js'; import './types/conversationCallback.js'; import './enums/conversationState.js'; import './enums/eventsTypes.js'; import './types/anyMessageBody.js'; import './types/messageASRBody.js'; import './types/messageChannelBody.js'; import './types/messageAudioBody.js'; import './enums/eventMessageType.js'; import './types/messageConversationBody.js'; import './types/messageCustomBody.js'; import './types/messageEventBody.js'; import './types/messageFileBody.js'; import './types/messageImageBody.js'; import './types/messageLegBody.js'; import '@vonage/messages'; import '@vonage/voice'; import './enums/legStatus.js'; import './enums/reasonMessages.js'; import './types/messageLocationBody.js'; import './types/messageMemberBody.js'; import './types/messageRTCAnswerBody.js'; import './types/messageRTCIdBody.js'; import './types/messageRecordBody.js'; import './types/messageRecordIdBody.js'; import './types/messageSIPDirectionBody.js'; import './types/messageSIPBody.js'; import './types/messageSIPHangupBody.js'; import './types/messageSIPMachineBody.js'; import './types/messageSIPStatusBody.js'; import './types/messageSayBody.js'; import './types/messageSayIdBody.js'; import './types/messageStatusBody.js'; import './types/messageTemplateBody.js'; import './types/messageTextBody.js'; import './types/messageVCardBody.js'; import './types/messageVideoBody.js'; import './types/eventUser.js'; /** * A client for talking to the Vonage Conversation API. * * @example * Create a standalone Conversation client * * ```ts * import { Conversations } from '@vonage/conversation'; * * const conversationClient = new Conversations({ * applicationId: VONAGE_APPLICATION_ID, * privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH, * }); * ``` * * @example * Create an Conversation client from the Vonage client * * ```ts * import { Vonage } from '@vonage/server-client'; * * const vonage = new Vonage({ * applicationId: VONAGE_APPLICATION_ID, * privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH, * }); * * const conversationClient = vonage.conversations * ``` */ declare class Conversations extends Client { authType: AuthenticationType; /** * Retrieves all conversations, iterating over paginated results. * * @param {ListConversationParams} [params={}] - Optional filter parameters. * @yields {Conversation} - Yields conversation items. * @return {AsyncGenerator} - An asynchronous generator. * * @example * List conversations with pagination using an iterator * * ```ts * for await (const conversation of conversationClient.listAllConversations()) { * console.log(conversation.name); * } * ``` */ listAllConversations(params?: ListConversationsParameters): AsyncGenerator; /** * Retrieves a page of conversations based on filter parameters. * * @param {ListConversationParams} filter - The filter parameters for pagination. * @return {Promise} - A promise resolving to a page of conversations. * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#listConversation} * * @example * Get a single page of conversations * * ```ts * const conversations = await conversationClient.getConversationPage({ * page: 1, * size: 10 * }); * * conversations.conversations.forEach(conversation => { * console.log(conversation.name); * }); * ``` */ getConversationPage(filter: ListConversationsParameters): Promise; /** * Creates a new conversation with the provided details. * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#createConversation} * * @param {Conversation} conversation - The conversation details to be created. * @return {Promise} - A promise resolving to the created conversation. * * @example * Create a new conversation * * ```ts * const conversation = await conversationClient.createConversation({ * name: 'My Conversation', * }); * * console.log(conversation.id); * ``` */ createConversation(conversation: Conversation): Promise; /** * Retrieves an conversation by its unique identifier. * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#getConversation} * * @param {string} conversationId - The unique identifier of the conversation to retrieve. * @return {Promise} - A promise resolving to the retrieved conversation. * * @example * Retrieve an conversation * * ```ts * const conversation = await conversationClient.getConversation(conversation_ID); * console.log(conversation.name); * ``` */ getConversation(conversationId: string): Promise; /** * Updates an existing conversation with the provided details. * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#updateConversation} * * @param {Conversation} conversation - The conversation details to be updated. * @return {Promise} - A promise resolving to the updated conversation. * * @example * Update an conversation * * ```ts * const conversation = await conversationClient.updateConversation({ * id: conversation_ID, * name: 'My Conversation', * }); * console.log(conversation.name); * ``` */ updateConversation(conversation: Conversation): Promise; /** * Deletes an conversation by its unique identifier. * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#deleteConversation} * * @param {string} conversationId - The unique identifier of the conversation to delete. * @return {Promise} - A promise indicating the successful deletion of the conversation. * * @example * Delete an conversation * * ```ts * await conversationClient.deleteConversation(conversation_ID); * ``` */ deleteConversation(conversationId: string): Promise; /** * Retrieves all conversations, for a user * * @param {string} userId - The user id to retrieve conversations from. * @param {ListConversationParams} [params={}] - Optional filter parameters. * @yields {Conversation} - Yields conversation items. * @return {AsyncGenerator} - An asynchronous generator. * * @example * List conversations with pagination using an iterator * * ```ts * for await (const conversation of conversationClient.listAllUserConversations(USER_ID)) { * console.log(conversation.name); * } * ``` */ listAllUserConversations(userId: string, params?: ListConversationsParameters): AsyncGenerator; /** * Retrieves all session, for a user * * @param {string} userId - The user id to retrieve sessions from. * @param {ListSessionParams} [params={}] - Optional filter parameters. * @yields {Session} - Yields session items. * @return {AsyncGenerator} - An asynchronous generator. * * @example * List sessions with pagination using an iterator * * ```ts * for await (const session of conversationClient.listAllUserSessions(USER_ID)) { * console.log(session.id); * } * ``` */ listAllUserSessions(userId: string, params?: ListSessionParameters): AsyncGenerator; /** * Retrieves a page of sessions based on filter parameters. * * @param {string} userId - The user id to retrieve sessions from. * @param {ListSessionParams} filter - The filter parameters for pagination. * @return {Promise} - A promise resolving to a page of sessions. * * @see API Specification {@link https://developer.vonage.com/en/api/session#listSession} * * @example * Get a single page of sessions * * ```ts * const sessions = await conversationClient.getUserSessionPage( * USER_ID, * { * page: 1, * size: 10 * } * ); * * sessions.sessions.forEach(session => { * console.log(session.id); * }); * ``` */ getUserSessionsPage(userId: string, filter: ListSessionParameters): Promise; /** * Retrieves all members, iterating over paginated results. * * @param {string} conversationId - The conversation id to retrieve members from. * @param {ListMemberParams} [params={}] - Optional filter parameters. * @yields {Member} - Yields member items. * @return {AsyncGenerator} - An asynchronous generator. * * @example * List members with pagination using an iterator * * ```ts * for await (const member of memberClient.listAllMembers(CONVERSATION_ID)) { * console.log(member.name); * } * ``` */ listAllMembers(conversationId: string, params?: ListMemberParameters): AsyncGenerator; /** * Retrieves a page of members in a conversation based on filter parameters. * * @param {string} conversationId - The conversation id to retrieve members from. * @param {ListMemberParams} filter - The filter parameters for pagination. * @return {Promise} - A promise resolving to a page of members. * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#listMember} * * @example * Get a single page of members * * ```ts * const members = await memberClient.getMemberPage( * CONVERSATION_ID, * { * page: 1, * size: 10 * } * ); * * members.members.forEach(member => { * console.log(member.name); * }); * ``` */ getMemberPage(conversationId: string, filter?: ListMemberParameters): Promise; /** * Creates a new member with the provided details. * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#createMember} * * @param {string} conversationId - The conversation id to create the member in. * @param {Member} member - The member details to be created. * @return {Promise} - A promise resolving to the created member. * * @example * Create a new member * * ```ts * const member = await memberClient.createMember( * CONVERSATION_ID, * { * name: 'My Member', * }, * ); * * console.log(member.id); * ``` */ createMember(conversationId: string, member: Member): Promise; /** * Retrieves an member by its unique identifier. * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#getMember} * * @param {string} conversationId - The conversation id to retrieve the member from. * @param {string} memberId - The unique identifier of the member to retrieve. * @return {Promise} - A promise resolving to the retrieved member. * * @example * Retrieve an member * * ```ts * const member = await memberClient.getMember(CONVERSATION_ID, MEMBER_ID); * console.log(member.name); * ``` */ getMember(conversationId: string, memberId: string): Promise; /** * This retrieves the member associated with the sub claim on the JWT * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#getMe} * * @param {string} conversationId - The conversation id to retrieve the member from. * @return {Promise} - A promise resolving to the retrieved member. * * @example * Retrieve an member * * ```ts * const member = await memberClient.getMe(CONVERSATION_ID); * console.log(member.name); * ``` */ getMe(conversationId: string): Promise; /** * Updates an existing member with the provided details. * * Setting the state to left will result in the member leaving the conversation. * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#updateMember} * * @param {string} conversationId - The conversation id to update the member in. * @param {string} memberId - The member details to be updated. * @param {UpdateMemberParameters} params - The update parameters. * @return {Promise} - A promise resolving to the updated member. * * @example * ```ts * import { MemberState } from '@vonage/conversation'; * * const member = await memberClient.updateMember( * CONVERSATION_ID, * MEMBER_ID, * { * state: MemberState.LEFT, * from: USER_ID, * }, * ); * * console.log(member.name); * ``` */ updateMember(conversationId: string, memberId: string, params: UpdateMemberParameters): Promise; /** * Retrieves all events, iterating over paginated results. * * @param {string} conversationId - The conversation id to retrieve events from. * @param {ListEventParams} [params={}] - Optional filter parameters. * @yields {Event} - Yields event items. * @return {AsyncGenerator} - An asynchronous generator. * * @example * List events with pagination using an iterator * * ```ts * for await (const event of eventClient.listAllEvents()) { * console.log(event.name); * } * ``` */ listAllEvents(conversationId: string, params?: ListEventParameters): AsyncGenerator; /** * Retrieves a page of events based on filter parameters. * * @param {string} conversationId - The conversation id to retrieve events from. * @param {ListEventParams} filter - The filter parameters for pagination. * @return {Promise} - A promise resolving to a page of events. * * @see API Specification {@link https://developer.vonage.com/en/api/event#listEvent} * * @example * Get a single page of events * * ```ts * const events = await eventClient.getEventPage({ * page: 1, * size: 10 * }); * * events.events.forEach(event => { * console.log(event.name); * }); * ``` */ getEventPage(conversationId: string, filter: ListEventParameters): Promise; /** * Retrieves an event by its unique identifier. * * @see API Specification {@link https://developer.vonage.com/en/api/conversation#getEvent} * * @param {string} conversationId - The conversation id to retrieve the event from. * @param {string} eventId - The unique identifier of the event to retrieve. * @return {Promise} - A promise resolving to the retrieved event. * * @example * Retrieve an event * * ```ts * const event = await eventClient.getEvent(CONVERSATION_ID, event_ID); * console.log(event.name); * ``` */ getEvent(conversationId: string, eventId: string): Promise; /** * Creates a new event with the provided details. * * @see API Specification {@link https://developer.vonage.com/en/api/event#createEvent} * * @param {string} conversationId - The conversation id to create the event in. * @param {Event} event - The event details to be created. * @return {Promise} - A promise resolving to the created event. * * @example * Create a new event * * ```ts * const event = await eventClient.createEvent({ * name: 'My Event', * }); * * console.log(event.id); * ``` */ createEvent(conversationId: string, event: Event): Promise; /** * Deletes an event by its unique identifier. * * @see API Specification {@link https://developer.vonage.com/en/api/event#deleteEvent} * * * @param {string} conversationId - The conversation id to delete the event from. * @param {string} eventId - The unique identifier of the conversation to delete. * @return {Promise} - A promise indicating the successful deletion of the event. * * @example * Delete an event * * ```ts * await eventClient.deleteEvent(conversation_ID); * ``` */ deleteEvent(conversationId: string, eventId: string): Promise; } export { Conversations };