import { StyleRules } from "@material-ui/core"; import { InputClassKey, InputProps } from "@material-ui/core/Input"; import { PopoverClassKey, PopoverProps } from "@material-ui/core/Popover"; import { Value as HtmlValueType } from "@udecode/slate"; import type { EmailState } from "../../../../state/ConversationInputState"; import type { ConversationState } from "../../../../state/ConversationState"; import { CSSProps } from "../../../CSSProps"; import { ChipInputClassKey } from "../Chips/ChipInput.definitions"; import { ChipInputSourceProps } from "../Chips/ChipInputSource/ChipInputSource.definitions"; export interface EmailEditorProps { participants: Record; disabledReason: string | undefined; conversationSid: string; maxEmailContentSize: number; } export declare enum ParticipantLevelType { to = "to", cc = "cc" } /** * @typedef Theme.EmailEditorThemeProps * @property {CSSProps} Wrapper - Styles for the most external component * @private */ export interface EmailEditorThemeProps { Wrapper: CSSProps; Title: CSSProps; EntrypointButton: CSSProps; Form: CSSProps; InputField: { Default: CSSProps; WithBorder: CSSProps; }; InputFieldLabel: CSSProps; InputFieldInput: Partial>; Footer: CSSProps; SubmitButtonContainer: CSSProps; FileContainer: CSSProps; CCFieldToggle: CSSProps; MessageIframe: CSSProps; ButtonSpinnerContainer: CSSProps; ChipInput: Partial>; ChipInputTile: CSSProps; ChipInputCloseButton: CSSProps; ToolbarWrapper: CSSProps; ToolbarCompactViewWrapper: CSSProps; ToolbarSeparator: CSSProps; ToolbarFileAttachmentButton: CSSProps; ToolbarButton: { Default: CSSProps; Active: CSSProps; }; ToolbarPopover: Partial>; LinkPanelWrapper: CSSProps; LinkPanelCloseIcon: CSSProps; LinkPanelTitle: CSSProps; LinkPanelButtonsContainer: CSSProps; LinkPanelField: CSSProps; } export interface CombinedParticipant { address: string; universalParticipantSid: string; conversationParticipantSid: string; } export interface EmailDraftData { toParticipants: CombinedParticipant[]; ccParticipants: CombinedParticipant[]; subject: string; emailBody: { htmlValue: HtmlValueType; contentSize: number; }; } export interface EmailEditorChildrenProps extends EmailEditorProps { conversation: ConversationState; participants: Record; messageState: EmailState; isReplyModeActive?: boolean; connectionState: string; } export interface EmailEditorImplProps extends EmailEditorChildrenProps { } export interface EmailCharLimitStyleProps { contentSizeInPercent: number; }