@point-api/js-sdk
Version:
Javascript SDK for Point API
112 lines (111 loc) • 3.6 kB
TypeScript
import { AuthManager } from "../authManager";
export declare type ContextType = "text" | "gmail";
/**
* Snippet metadata
*/
export interface Snippet {
'id_': string;
'name': string;
'content': string;
'labels': string[];
}
/**
* Reply metadata
*/
export interface ReplyMeta {
prompt: string;
suggestions: Reply[];
type: string;
}
interface Reply {
text: string;
confidence: number;
}
export interface AutocompleteResponse {
snippets: Snippet[];
seedText: string;
responseId: string;
}
export interface ReplyResponse {
replies: ReplyMeta[];
responseId: string;
}
export interface SessionError {
status: "failure";
reason: "exceeded_daily_usage_limit" | "expired_membership";
}
export interface AutocompleteSession {
reconnect: () => Promise<void>;
disconnect: () => void;
setOnErrorHandler: (callback: (error: SessionError) => void) => void;
queryByContent: (seedText: string, currentContext?: string) => Promise<AutocompleteResponse | null>;
queryByName: (query: string) => Promise<AutocompleteResponse | null>;
feedback: (responseId: string, snippet: Snippet, origin: string) => Promise<void>;
}
/**
* Point Websockets Api Instance
*/
export default class AutocompleteSessionImpl implements AutocompleteSession {
/** Email address of Point user */
private readonly emailAddress;
/** AuthManager manages credentials & JWT */
private authManager;
/** Search type */
private searchType;
/** API URL */
private readonly ApiUrl;
/** @private SocketIO instance used to interact with Point API */
private socket;
/** @private Reconnect counter */
private reconnectCount;
/** @private Max reconnect attempts */
private readonly maxReconnects;
/** Error handler */
private onErrorHandler;
/**
* @param emailAddress Email address of Point user
* @param authCode Auth code (JWT) provider
*/
constructor(emailAddress: string, authManager: AuthManager, searchType?: string, apiUrl?: string);
/**
* Reconnects to the Point API socket.io
*/
reconnect(): Promise<void>;
/**
* Disconnects from the Point API manually
*/
disconnect(): void;
/**
* Registers error handler callback that will be invoked
* on any socket.io session errors sent from the server.
*
* @param callback Error callback method
*/
setOnErrorHandler: (callback: (error: SessionError) => void) => void;
/**
* Query PointApi with seed text to get predicted suggestions
* @param seedText The text to base suggestion predictions off of
* @returns A list of the predicted suggestion objects
*/
queryByContent(seedText: string, currentContext?: string): Promise<AutocompleteResponse | null>;
/**
* Query PointApi with a hotkey trigger to get a full hotkey suggestion
* @param trigger String that is a shortcut for the full hotkey text
* @returns A list of the predicted suggestion objects
*/
queryByName(query: string): Promise<AutocompleteResponse | null>;
/**
* Give feedback on Point Api's suggestions.
* This is like chosenSuggestion/Hotkey interaction.
*/
feedback(responseId: string, snippet: Snippet, origin: string): Promise<void>;
/**
* Get reply suggestions given some recieved text
*/
reply(previousMessage: string, contextType?: ContextType): Promise<ReplyResponse | null>;
/**
* Callback function that handles JWT changed events.
*/
private onJwtChange;
}
export {};