import { Callback, Handler } from '../handler'; export type ConnectContactFlowHandler = Handler; export type ConnectContactFlowCallback = Callback; // Connect // https://docs.aws.amazon.com/connect/latest/adminguide/connect-lambda-functions.html export interface ConnectContactFlowEvent { Details: { ContactData: { Attributes: { [key: string]: string }; Channel: ConnectContactFlowChannel; ContactId: string; CustomerEndpoint: ConnectContactFlowEndpoint | null; InitialContactId: string; InitiationMethod: ConnectContactFlowInitiationMethod; InstanceARN: string; PreviousContactId: string; Queue: ConnectContactFlowQueue | null; SystemEndpoint: ConnectContactFlowEndpoint | null; MediaStreams: { Customer: { Audio: CustomerAudio; }; }; }; Parameters: { [key: string]: string }; }; Name: 'ContactFlowEvent'; } export type ConnectContactFlowChannel = 'VOICE' | 'CHAT'; export type ConnectContactFlowInitiationMethod = 'INBOUND' | 'OUTBOUND' | 'TRANSFER' | 'CALLBACK' | 'API'; export interface ConnectContactFlowEndpoint { Address: string; Type: 'TELEPHONE_NUMBER'; } export interface ConnectContactFlowQueue { ARN: string; Name: string; } export interface ConnectContactFlowResult { [key: string]: string | null; } export type CustomerAudio = | null // If Media Streaming has never been started. | StartedCustomerAudio // If Media Streaming has been started, but not stopped. | StartedCustomerAudio & StoppedCustomerAudio // If Media Streaming has been started and stopped. ; export interface StartedCustomerAudio { StartFragmentNumber: string; StartTimestamp: string; StreamARN: string; } export interface StoppedCustomerAudio { StopFragmentNumber: string; StopTimestamp: string; }