import { EpisodeData, ShowData } from './episode.interface'; export interface SlotData { readonly id: string; readonly start: number; readonly end: number; } export interface OptionGroupData { readonly id: string; readonly title: string; readonly slotId: string | null | undefined; readonly oneTime: boolean; readonly oneTimeActedMessage?: string; previouslyActed?: boolean; hide?: boolean; hideMessage?: string; readonly options: OptionData[]; } export interface OptionData { readonly id: string; readonly title: string; hide?: boolean; clientActions: ClientActionData[]; } export declare type ClientActionType = 'externalUrl' | 'feedSubscribe' | 'mediaPause' | 'mediaResume' | 'mediaSeekAbsolute' | 'mediaSeekRelative' | 'modalFrame' | 'modalPopup' | 'optionGroupGoTo' | 'optionGroupHide' | 'optionHide'; export interface ActionMeta { [index: string]: string | number | boolean | ActionMeta | Array; } export interface ClientActionData { readonly actionId: string; readonly type: ClientActionType; readonly meta: ActionMeta | null; } export interface DeviceDto { deviceIdentifier: string; userAgent?: string; ipAddress?: string; } export interface CreateResponseData { optionId?: string; actionId?: string; timestamp: number; step?: number; totalSteps?: number; occurredAt?: number; localTimezoneOffset?: number; } export interface CreatePlayData { slotId?: string; occurredAt?: number; localTimezoneOffset?: number; playbackRate?: number; } export interface PdData { readonly episode?: EpisodeData; readonly slots: SlotData[]; readonly optionGroups: OptionGroupData[]; } export interface OptOutData { id: string; createdAt: string; show?: ShowData; showId?: string; listenerId?: string; } export declare type OptOutType = 'show' | 'listener' | '';