import { CSSProps } from "../../../flex-ui-core/src"; import { ParticipantsCanvasChildrenKeys } from "../../../internal-flex-commons/src"; import { CallNetworkIssue } from "../../../state/AppStatusState"; import { CallCanvasParticipant } from "../../../state/Participants/participants.selectors"; import { Participant } from "../../../state/Participants/participants.types"; import { ParticipantCanvasThemeProps } from "../ParticipantCanvas/ParticipantCanvas.definitions"; import { TaskCanvasChildrenProps } from "../TaskCanvas"; /** * Properties of participants canvas theme. * * @typedef Theme.ParticipantsCanvasNotificationThemeProps * @property {CSSProps} Container - Styles participants container. */ interface ParticipantsCanvasNotificationThemeProps { Container: CSSProps; } /** * @typedef Theme.ParticipantsCanvasThemeProps * @property {ParticipantCanvasThemeProps} ParticipantCanvas - Styles for a single participant. * @property {ParticipantsCanvasNotificationThemeProps} Notification - Styles for notification in participants canvas. * @property {CSSProps} Disclosure - Styles for Disclosure Paste Component in Google CCAI flow. * @property {CSSProps} DisclosureContent - Styles for Disclosure Content Paste Component in Google CCAI flow. * @property {CSSProps} DisclosureHeading - Styles for Disclosure Header Paste Component in Google CCAI flow. */ export interface ParticipantsCanvasThemeProps { ParticipantCanvas: ParticipantCanvasThemeProps; Notification: ParticipantsCanvasNotificationThemeProps; Disclosure: CSSProps; DisclosureContent: CSSProps; DisclosureHeading: CSSProps; } /** * Properties of children in participants canvas. * * @typedef ParticipantsCanvas.ParticipantsCanvasProps * @property {boolean} [includeMyself] - Identifies if current logged in worker is included. * @property {boolean} [hideActions] - Identifies if the participant actions are hidden * @property {boolean} [isCCAICall] - Identifies if the call is a Google CCAI call or not. */ export interface ParticipantsCanvasProps { includeMyself?: boolean; hideActions?: boolean; isCCAICall?: boolean; } /** * Properties of children in participants canvas. * * @typedef {ParticipantsCanvasProps} ParticipantsCanvas.ParticipantsCanvasChildrenProps * @property {Array} external - external call canvas participants. * @property {Record} participantsByCallSid - dictionary of participants with participantSid as the key. * @property {ParticipantsCanvasThemeProps} [theme.ParticipantsCanvas] - Theme */ export interface ParticipantsCanvasChildrenProps extends ParticipantsCanvasProps, TaskCanvasChildrenProps { external: CallCanvasParticipant[]; participantsByCallSid: Record; callNetworkIssues: CallNetworkIssue[]; setPrevCallPerformed: boolean; startCallTimestamp?: Date; callSid?: string; } export { ParticipantsCanvasChildrenKeys }; export interface ParticipantsCanvasState extends ParticipantsCanvasProps, TaskCanvasChildrenProps { participantWidth: number; listMode: boolean; noOfParticipants?: number; }