import { InAppMessageHorizontalAlignment, InAppMessageVerticalAlignment, List } from "../model/model"; import { TargetDto } from "./dto"; export interface InAppMessageDto { id: number; key: number; status: string; timeUnit: string; startEpochTimeMillis: number | null; endEpochTimeMillis: number | null; timetable: InAppMessageTimetableDto | null; eventTriggerRules: List; eventTriggerDelay: InAppMessageDelayDto | null; eventFrequencyCap?: InAppMessageEventFrequencyCapDto; targetContext: InAppMessageTargetContextDto; evaluateContext: InAppMessageEvaluateContextDto | null; messageContext: InAppMessageContextDto; } export interface InAppMessageTimetableDto { type: string; slots: InAppMessageTimetableSlotDto[]; } export interface InAppMessageTimetableSlotDto { dayOfWeek: string; startMillisInclusive: number; endMillisExclusive: number; } export interface InAppMessageEventTriggerRuleDto { eventKey: string; targets: List; } export interface InAppMessageEventFrequencyCapDto { identifiers: InAppMessageIdentifierCapDto[]; duration?: InAppMessageDurationCapDto; } export interface InAppMessageIdentifierCapDto { identifierType: string; countPerIdentifier: number; } export interface InAppMessageDurationCapDto { durationUnit: InAppMessageDurationDto; countPerDuration: number; } export interface InAppMessageDurationDto { timeUnit: string; amount: number; } export interface InAppMessageTargetContextDto { targets: List; overrides: List; } export interface InAppMessageTargetRuleOverrideDto { identifierType: string; identifiers: string[]; } export interface InAppMessageAlignmentDto { vertical: InAppMessageVerticalAlignment; horizontal: InAppMessageHorizontalAlignment; } export interface InAppMessageLayoutDto { displayType: string; layoutType: string; alignment: InAppMessageAlignmentDto | null; } export interface InAppMessageContextDto { defaultLang: string; exposure: InAppMessageExposureDto; platformTypes: string[]; orientations: string[]; messages: List; } export interface InAppMessageExposureDto { type: string; key: number | null; } export interface InAppMessageContextMessageDto { variationKey: string | null; lang: string; layout: InAppMessageLayoutDto; images: List; imageAutoScroll: InAppMessageContextImageAutoScrollDto | null; text?: InAppMessageContextTextDto | null; closeButton: InAppMessageContextCloseButtonDto | null; buttons: List; background: InAppMessageContextMessageBackgroundDto; action: InAppMessageContextActionDto | null; outerButtons: InAppMessagePositionalButtonDto[]; innerButtons: InAppMessagePositionalButtonDto[]; html: InAppMessageHtmlDto | null; } export interface InAppMessageContextImageDto { orientation: string; imagePath: string; action: InAppMessageContextActionDto | null; } export interface InAppMessageContextImageAutoScrollDto { interval: InAppMessageDurationDto; } export interface InAppMessageContextActionDto { behavior: string; type: string; value: string | null; } export interface InAppMessageContextTextDto { title: InAppMessageContextTextContentDto; body: InAppMessageContextTextContentDto; } export interface InAppMessageContextTextContentDto { text: string; style: InAppMessageContextTextContentStyleDto; } export interface InAppMessageContextTextContentStyleDto { textColor: string; } export interface InAppMessageContextCloseButtonDto { style: { color: string; }; action: InAppMessageContextActionDto; } export interface InAppMessageContextButtonDto { text: string; action: InAppMessageContextActionDto; style: InAppMessageContextButtonStyleDto; } export interface InAppMessageContextButtonStyleDto { textColor: string; bgColor: string; borderColor: string; } export interface InAppMessageContextMessageBackgroundDto { color: string; } export interface InAppMessagePositionalButtonDto { button: InAppMessageContextButtonDto; alignment: InAppMessageAlignmentDto; } export interface InAppMessageDelayDto { type: "IMMEDIATE" | "AFTER"; afterCondition: InAppMessageAfterConditionDto | null; } export interface InAppMessageAfterConditionDto { duration: InAppMessageDurationDto; } export interface InAppMessageEvaluateContextDto { atDeliverTime: boolean; } export interface InAppMessageHtmlDto { resourceType: string; text: string | null; path: string | null; }