@botonic/core
Version:
Build Chatbots using React
103 lines (102 loc) • 3.32 kB
TypeScript
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 {};