interface FlowType { eventSourceName: string; eventSpecificationName: string; eventClassificationId: string; eventClassificationName: string; eventSpecificationId: string; eventSourceId: string; } interface Prompt { type: string; value: string; name: string; } interface SetVariableArrayItem { setTo: string; id: string; literal_invalid_error: boolean; } export type WxCCActivityType = 'NewPhoneContact' | 'end' | 'disconnect-contact' | 'queue-contact' | 'play-music' | 'play-message' | 'wait-activity' | 'set-variable' | 'ivr-menu' | 'ivr-collectdigits' | 'condition-activity' | 'business-hours' | 'blind-transfer'; interface WxCCActivityBase { id: string; name: string; type: TActivity; group: string; properties: TProps; } interface BaseActivityProperties { activityName: TName; activityId: string; _renderRequestTimestamp: number; } interface MediaBaseProps extends BaseActivityProperties { connector_name: string | null; name: string; toggle: boolean; prompts: Prompt[]; volumeGainDb: number; voiceLanguage_name: string | null; promptsTts: unknown; connector: unknown; speakingRate: number; toggleLanguage: unknown; voiceLanguage: unknown; flowDecryptAccess: boolean; 'connector:name': string | null; 'voiceLanguage:name': unknown; } type NewPhoneContactProps = BaseActivityProperties<'NewPhoneContact'> & { name: string; event: string; flowType: FlowType; }; type PlayMessageProps = MediaBaseProps<'play-message'>; type PlayMusicProps = MediaBaseProps<'play-music'>; type IvrMenuProps = MediaBaseProps<'ivr-menu'> & { menuLinks: string[]; 'menuLinks:input': string[]; menuLinks_input: string[]; entryTimeout: number; interruptible: boolean; }; type SetVariableProps = BaseActivityProperties<'set-variable'> & { setTo: string; name: string; literal_invalid_error: boolean; setVariablesArray: SetVariableArrayItem[]; flowDecryptAccess: boolean; }; type BlindTransferProps = BaseActivityProperties<'blind-transfer'> & { name: string; transfertodn: string; transfertodn_radioName: string; 'transfertodn:radioName': string; customAttributes: Record; flowDecryptAccess: boolean; }; type BusinessHoursProps = BaseActivityProperties<'business-hours'>; type NewPhoneContactActivity = WxCCActivityBase; type PlayMessageActivity = WxCCActivityBase; type PlayMusicActivity = WxCCActivityBase; type IvrMenuActivity = WxCCActivityBase; type SetVariableActivity = WxCCActivityBase; type BlindTransferActivity = WxCCActivityBase; type BusinessHoursActivity = WxCCActivityBase; export type WxCCActivity = NewPhoneContactActivity | PlayMessageActivity | PlayMusicActivity | IvrMenuActivity | SetVariableActivity | BlindTransferActivity | BusinessHoursActivity; export type WxCCActivityMap = { NewPhoneContact: NewPhoneContactActivity; 'play-message': PlayMessageActivity; 'play-music': PlayMusicActivity; 'ivr-menu': IvrMenuActivity; 'set-variable': SetVariableActivity; 'blind-transfer': BlindTransferActivity; 'business-hours': BusinessHoursActivity; }; export type WxCCTemplatedActivityType = keyof WxCCActivityMap; export {};