UNPKG

@botonic/core

Version:
103 lines (102 loc) 3.32 kB
import { Session } from './models'; export interface HubtypeAgentsInfo { attending_count: number; email: string; idle_count: number; last_message_sent: string; status: string; } export interface BackendContext { timeoutMs: number; } export interface VacationRange { end_date: number; id: number; start_date: number; } export type HandoffExtraData = { language?: string; url?: string; location?: string; }; interface BotEventData { language: string; country: string; } export declare enum HelpdeskEvent { StatusChanged = "status_changed", AgentMessageCreated = "agent_message_created", QueuePositionChanged = "queue_position_changed" } export declare function getOpenQueues(session: Session, context?: {}): Promise<{ queues: string[]; }>; export declare class HandOffBuilder { _session: Session; _queue: string; _onFinish: string; _email: string; _agentId: string; _forceAssignIfNotAvailable: boolean; _autoAssignOnWaiting: boolean; _note: string; _caseInfo: string; _autoIdleMessage: string; _shadowing: boolean; _extraData: HandoffExtraData; _bot_event: BotEventData; _subscribeHelpdeskEvents: HelpdeskEvent[]; constructor(session: Session); withQueue(queueNameOrId: string): this; withOnFinishPayload(payload: string): this; withOnFinishPath(path: string): this; withAgentEmail(email: string): this; withAgentId(agentId: string): this; withForceAssignIfNotAvailable(forceAssign: boolean): this; withAutoAssignOnWaiting(autoAssignOnWaiting: boolean): this; withNote(note: string): this; withCaseInfo(caseInfo: string): this; withAutoIdleMessage(message: string): this; withShadowing(shadowing?: boolean): this; withExtraData(extraData: HandoffExtraData): this; withBotEvent(botEvent: BotEventData): this; withSubscribeHelpdeskEvents(events: HelpdeskEvent[]): this; handOff(): Promise<void>; } /** * @deprecated use {@link HandOffBuilder} class instead */ export declare function humanHandOff(session: any, queueNameOrId: string | undefined, onFinish: any): Promise<void>; export interface HubtypeHandoffParams { queue?: string; agent_email?: string; agent_id?: string; force_assign_if_not_available?: boolean; auto_assign_on_waiting?: boolean; case_info?: string; note?: string; auto_idle_message?: string; shadowing?: boolean; on_finish?: string; case_extra_data?: HandoffExtraData; bot_event?: BotEventData; subscribe_helpdesk_events?: HelpdeskEvent[]; } export declare function storeCaseRating(session: Session, rating: number, context?: any): Promise<{ status: string; }>; export declare function getAvailableAgentsByQueue(session: Session, queueId: string): Promise<{ agents: string[]; }>; export declare function getAvailableAgents(session: Session): Promise<{ agents: HubtypeAgentsInfo[]; }>; export declare function getAgentVacationRanges(session: Session, { agentId, agentEmail }: { agentId?: string; agentEmail?: string; }): Promise<{ vacation_ranges: VacationRange[]; }>; export declare function cancelHandoff(session: Session, typification?: string | null): void; export declare function deleteUser(session: Session): void; export {};