@vonage/client-sdk
Version:
The Client SDK is intended to provide a ready solution for developers to build Programmable Conversation applications across multiple Channels including: Messages, Voice, SIP, websockets, and App.
135 lines (134 loc) • 6.2 kB
TypeScript
import vonage from './vonage';
import { CustomData } from './JsonUtils';
import { Nullable } from '../kotlin/clientsdk-clientcore_js';
import { Option } from './Option';
/**
* Parameters object for {@link VonageClient.createConversation}
*
* @property name The name to initialize the conversation with
* @property displayName The displayName to initialize the conversation with
* @property imageUrl The name to imageUrl the conversation with
* @property ttl The time-to-live (in seconds) to initialize the conversation with
* @property customSortKey The customSortKey to initialize the conversation with.
* When {@link GetConversationsParameters.orderBy} is set to {@link OrderBy.CUSTOM_SORT_KEY}, conversations will be sorted according to the value of this property.
* @property customData Custom data associated with the conversation
* @interface
* @group Chat
*/
export type CreateConversationParameters = Omit<vonage.CreateConversationParametersJS, 'ttl' | 'customData'> & {
ttl?: Nullable<number>;
customData?: Nullable<CustomData>;
};
/**
* Parameters object for {@link VonageClient.getConversations}
*
* @property order The order in which conversations are presented, default is {@link PresentingOrder.ASC}.
* @property pageSize The maximum number of conversations to retrieve per request, default is 10.
* @property cursor The cursor indicating the starting point for pagination, default is the first page.
* @property includeCustomData Indicates whether to include custom data in the results, default is false.
* @property orderBy The strategy for ordering the conversations, default is {@link OrderBy.CREATED}.
* @interface
* @group Chat
*/
export type GetConversationsParameters = Omit<vonage.GetConversationsParametersJS, 'pageSize' | 'order' | 'orderBy'> & {
pageSize?: Nullable<number>;
order?: Nullable<PresentingOrder>;
orderBy?: Nullable<OrderBy>;
};
/**
* Parameters object for {@link VonageClient.getConversationEvents}
*
* @property order The order in which conversation events are presented, default is {@link PresentingOrder.ASC}.
* @property pageSize The maximum number of conversation events to retrieve per request, default is 10.
* @property cursor The cursor indicating the starting point for pagination, default is the first page.
* @property eventFilter A list of strings containing the types of events to be fetched and should have maximum 5 elements, default includes all events.
* @property includeDeletedEvents Indicates whether to include deleted events in the list, default is false.
* @property startId Specify the starting id of the events to be returned, default includes all events.
* @interface
* @group Chat
*/
export type GetConversationEventsParameters = Omit<vonage.GetConversationEventsParametersJS, 'pageSize' | 'startId' | 'order'> & {
pageSize?: Nullable<number>;
startId?: Nullable<number>;
order?: Nullable<PresentingOrder>;
};
/**
* Parameters object for {@link VonageClient.getConversationMembers}
*
* @property order The order in which conversation members are presented, default is {@link PresentingOrder.ASC}.
* @property pageSize The maximum number of conversation members to retrieve per request, default is 10.
* @property cursor The cursor indicating the starting point for pagination, default is the first page.
* @interface
* @group Chat
*/
export type GetConversationMembersParameters = Omit<vonage.GetConversationMembersParametersJS, 'pageSize' | 'order'> & {
pageSize?: Nullable<number>;
order?: Nullable<PresentingOrder>;
};
/**
* Parameters object for {@link VonageClient.getCallLegs}
*
* @property order The order in which call legs are presented, default is {@link PresentingOrder.ASC}.
* @property pageSize The maximum number of legs to retrieve per request, default is 10.
* @property cursor The cursor indicating the starting point for pagination, default is the first page.
* @interface
* @group Voice
*/
export type GetCallLegsParameters = Omit<vonage.GetCallLegsParametersJS, 'pageSize' | 'order'> & {
order?: Nullable<PresentingOrder>;
pageSize?: Nullable<number>;
};
/**
* Parameters object for {@link VonageClient.updateConversation}.
*
* Every property is an {@link Option} monad.
* When set to {@link Option.Some} the property will be updated.
* When set to {@link Option.None} the property will remain unchanged.
*
* @property name The name of the conversation.
* @property displayName A display name for the conversation.
* @property imageUrl The URL of an image associated with the conversation.
* @property ttl The time-to-live (TTL) for the conversation in seconds.
* @property customSortKey A custom sort key for the conversation.
* @property customData Custom data associated with the conversation.
* @interface
* @group Chat
*/
export interface UpdateConversationParameters {
name?: string | Option<string>;
displayName?: string | null | Option<string | null | undefined>;
imageUrl?: string | null | Option<string | null | undefined>;
ttl?: number | Option<number>;
customSortKey?: string | null | Option<string | null | undefined>;
customData?: CustomData | null | Option<CustomData | null | undefined>;
}
/**
* The order in which paginated objects are presented.
*
* @group Chat
*/
export type PresentingOrder = Lowercase<typeof vonage.PresentingOrderJS.prototype.name> | vonage.PresentingOrderJS;
/**
* The order in which paginated objects are presented.
* @group Chat
* @enum
* @property ASC Ascending order
* @property DESC Descending order
*/
export declare const PresentingOrder: {
[prop in typeof vonage.PresentingOrderJS.prototype.name]: Lowercase<prop>;
};
/**
* The sorting strategy used for paginated objects.
*
* @group Chat
*/
export type OrderBy = Lowercase<typeof vonage.OrderByJS.prototype.name> | vonage.OrderByJS;
/**
* The sorting strategy used for paginated objects.
* @group Chat
* @enum
*/
export declare const OrderBy: {
[prop in typeof vonage.OrderByJS.prototype.name]: Lowercase<prop>;
};