"use strict";
export {};
/**
* @typedef {'hunting_group'|'manager_assistant'} HuntingGroupType
*/
/**
* @typedef {'default'|'hg_attendant'|'manager_assistant'} HuntingGroupSubType
*/
/**
* @typedef {'connected'|'disconnected'|'deskphone'|'unknown'} HuntingGroupMemberConnection
*/
/**
* @typedef {'serial'|'parallel'|'circular'} HuntingGroupPolicy
*/
/**
* @typedef {'all'|'external_only'|'internal_only'|'none'} HuntingGroupProfiles
*/
/**
* @typedef {'agent'|'manager'|'leader'|'assistant'} HuntingGroupMemberRole
*/
//type MemberRole = 'agent'|'manager'|'leader'|'assistant';
/**
* @typedef {'active'|'idle'} HuntingGroupMemberStatus
*/
//type MemberStatus = 'active' | 'idle';
/**
* @class
* @name HuntingGroup
* @description
* Class representing a hunting group.
* @public
* @property {String} name Hunting group name - displayed on the caller phone set
* @property {String} shortNumber Internal Number of the new cloud PBX hunting group
* @property {String} type (hunting_group) Group type. hunting_group,manager_assistant
*
*
Note that manager_assistant is DEPRECATED. See manager_assistant subType
*
* @property {HuntingGroupSubType} subType (default) Group sub type, only Voice attendant users can be part of hg_attendant group and can not be part of default group
* @property {HuntingGroupPolicy} policy (parallel) Hunting group policy - only parallel policy for hg_attendant hunting group, only serial for manager_assistant
* @property {(5-30)} timeout (10) Timeout in seconds after which the next member of the hunting group will be selected (ringing) - applicable to serial or circular hunting group type only
* @property {Boolean} isEmergencyGroup (false) Is this Hunting group the emergency group of the associated Cloud PBX
* @property {Boolean} isEmptyAllowed (true) Indicates if the last active member of the hunting group can leave the group or not
* @property {Boolean} isDDIUpdateByManagerAllowed (true) Indicates if changing the DDI of this hunting group by a manager is allowed or not
* @property {GroupMember[]} members List of group members. In case of serial hunt group policy, or for several assistants, the order is the ringing order
*/
class HuntingGroup {
name: string;
shortNumber: string;
type?: "hunting_group" | "manager_assistant";
subType?: "default" | "hg_attendant" | "manager_assistant";
policy?: "serial" | "parallel" | "circular";
timeout?: number;
isEmergencyGroup?: boolean;
isEmptyAllowed?: boolean;
isDDIUpdateByManagerAllowed?: boolean;
members: GroupMember[];
}
/**
* @class
* @name GroupMember
* @description
* Class representing a group member.
* @public
* @property {String} memberId Member (user) unique identifier
* @property {Array} roles (["agent"]) Member role inside the group.
* @property { HuntingGroupMemberStatus} status (active) Member status inside the group
*/
class GroupMember {
memberId: string;
roles?: ('agent'|'manager'|'leader'|'assistant') [];
status?: 'active'|'idle';
}
//module.exports = {'HuntingGroup' : HuntingGroup, "GroupMember" : GroupMember};
//export type {HuntingGroup as HuntingGroup, GroupMember as GroupMember};
export {HuntingGroup as HuntingGroup, GroupMember as GroupMember};
module.exports.HuntingGroup = HuntingGroup;
module.exports.GroupMember = GroupMember;