import { VOUCH_EMBED_GTM_EVENT_NAME, VOUCH_EMBED_TYPE, VOUCH_QUESTION_TYPE, VOUCH_STATUS } from './constants'; export type VouchNote = { text: string }; export type VouchCounts = { plays: number; }; export type VouchSentiment = string; export type VouchStatus = keyof typeof VOUCH_STATUS; export type VouchEmbedType = keyof typeof VOUCH_EMBED_TYPE; export type VouchEmbedGTMEventName = keyof typeof VOUCH_EMBED_GTM_EVENT_NAME; export type VouchQuestionType = keyof typeof VOUCH_QUESTION_TYPE; export type VouchMediaType = 'video' | 'audio' | 'hls'; export type VouchAspectRatio = '1:1' | '2:3' | '3:2' | '3:4' | '4:3' | '3:5' | '5:3' | '9:16' | '16:9'; export type VouchTracking = { facebook: string | null; google?: string | null; ga4?: string | null; }; export type VouchEmbedGTMParams = { env?: string; source?: string; vouch_id?: string; embed_url?: string; embed_type: VouchEmbedType; customer_id?: string; customer_name?: string; event_action?: string; event_category?: string; event_label?: string; customer_event_name?: string; analytics_integration_ua?: string; analytics_integration_ga4?: string; }; export type VouchEmbedGTMEvent = { name: VouchEmbedGTMEventName; params: VouchEmbedGTMParams; }; export type VouchVideoTrimming = { start: number; end: number; }; export interface SvgProps { fill?: string; width?: string; height?: string; viewbox?: string; fillrule?: CanvasFillRule; } export type EmbedVouchKeyword = { text: string; start: number; end: number; }; export type EmbedVouchNote = { text?: string; }; export type EmbedVouchAnswer = { url: string; text: string; video: string; label?: string; videoios: string; duration: number; captions?: string; thumbnail: string; aspectRatio: string; resolution: string; sentiment: VouchSentiment; contact: EmbedVouchContact; customer: EmbedVouchCustomer; trimming: VouchVideoTrimming; keywords: Array; }; export type EmbedVouchQuestion = { text: string; optional: boolean; maxduration: number; type: VouchQuestionType; answer?: EmbedVouchAnswer; }; export type EmbedVouchAccount = { name: string; email: string; uuid: string; }; export type EmbedVouchCampaign = { id: string; name: string; uuid: string; }; export type EmbedVouchContact = { name: string; email: string; }; export type EmbedVouchCustomer = { logo: string; name: string; url: string; uuid: string; }; export type EmbedVouchEntity = { uuid: string; id: string; logo: string; name: string; url: string; }; export type EmbedVouchData = { uuid: string; id: string; url: string; note: VouchNote; counts?: VouchCounts; status: VouchStatus; tracking?: VouchTracking; questions: Array; }; export type EmbedVouch = { account: EmbedVouchAccount; campaign: EmbedVouchCampaign; contact: EmbedVouchContact; customer: EmbedVouchCustomer; entity: EmbedVouchEntity; vouch: EmbedVouchData; }; export type EmbedVouchCaption = { start: number; end: number; text: string; }; export type MenuItem = { id: string; label: string; subItems?: MenuItem[]; onClick?: () => void; };