export type CtaBannerAdvancedSettings = 'include-popup' | 'link'; export type CtaBannerPopupDisplayButton = 'first' | 'second'; export type CtaBannerPopupButtonApi = { button_name?: string; button_link?: string; }; export type CtaBannerPopupSettingApi = { title: string; title_colour: string; description: string; description_colour: string; button_colour?: string; gradient_button?: string; background_style: 'background-color' | 'background-image' | string; background_colour?: string; icon?: string | boolean; image_desktop?: string; image_mobile?: string; popup_buttons?: { first_button?: CtaBannerPopupButtonApi; second_button?: CtaBannerPopupButtonApi; }; }; export type CtaBannerPrimaryButton = { backgroundGradient: string; backgroundColor: string; openNewTab: boolean; title: string; url: string; }; export type CtaBannerPrimaryButtonMulti = CtaBannerPrimaryButton & { embedYoutube?: boolean; youtubeLink?: string; }; export type CtaBannerPopupSetting = { title: string; titleColour?: string; description: string; descriptionColour?: string; buttonColour?: string; gradientButton?: string; desktop: string; mobile: string; backgroundStyle?: string; backgroundColour?: string; icon?: string; imageDesktop?: string; imageMobile?: string; buttons?: { primary?: CtaBannerPrimaryButton; secondary?: CtaBannerPrimaryButton; }; }; type CtaMultiImageBannerSettingApi = { title: string; description: string; button_text?: string; button_link?: string; embed_youtube?: boolean; youtube_link?: string; popup_buttons?: { first_button?: CtaBannerPopupButtonApi; second_button?: CtaBannerPopupButtonApi; }; }; export type BannerItemTypeApi = { desktop: string; mobile: string; banner_setting: CtaMultiImageBannerSettingApi; }; export type KeyPillarBannerTypeApi = { key_pillars: { name: string; slug: string; }; banners: BannerItemTypeApi[]; }; export type NonKeyPillarBannerTypeApi = BannerItemTypeApi; export type CtaBannerDisplayLayout = 'image_overlay_button' | 'image_on_top_button_below'; export type CtaBannerGridLayout = 'layout_1_block' | 'layout_2_block' | 'layout_3_block' | 'layout_4_block'; export type CtaBannerApi = { cta_banner_type: 'single-image'; layout: 'image_overlay_content' | '2_column_layout_1_1' | '2_column_layout_2_1'; fix_size_banner?: boolean; desktop_banner: string; mobile_banner: string; content_setting: { position: 'left_banner' | 'right_banner'; header: { text_color: string; header_content: string; }; text: { text_color: string; text_content: string; }; buttons: { button_color: string; gradient_button: string; open_new_tab: boolean; primary: { button_name: string; button_link: string; }; secondary_button: { button_name: string; button_link: string; }; }; }; popup_setting?: CtaBannerPopupSettingApi; advanced_settings?: CtaBannerAdvancedSettings; popup_display_button?: CtaBannerPopupDisplayButton; } | { cta_banner_type: 'multiple-image'; layout: CtaBannerDisplayLayout | string; video_layout: CtaBannerGridLayout | string; short_reel_layout?: boolean; open_new_tab: boolean; fix_size_banner: boolean; apply_carousel: boolean; expand_all_categories: boolean; layout_key_pillars: boolean; color_list_banner: { title_color: string; description_color: string; button_color: string; gradient_button: string; }; popup_setting?: CtaBannerPopupSettingApi; advanced_settings?: CtaBannerAdvancedSettings; list_banners: (KeyPillarBannerTypeApi | NonKeyPillarBannerTypeApi)[]; }; export type CtaBannerItem = { desktop: string; mobile: string; titleColor: string; title: string; descriptionColor: string; description: string; buttons: { primary?: CtaBannerPrimaryButton; secondary?: CtaBannerPrimaryButton; }; }; export type CtaMultiImageBannerItem = Omit & { popupButtons?: { primary?: CtaBannerPrimaryButton; secondary?: CtaBannerPrimaryButton; }; buttons: { primary?: CtaBannerPrimaryButtonMulti; secondary?: CtaBannerPrimaryButton; }; }; export type CtaGroupBannerItem = { keyPillars?: { name: string; slug: string; }; banners: CtaBannerItem[]; }; export type CtaMultiImageGroupBannerItem = { keyPillars?: { name: string; slug: string; }; banners: CtaMultiImageBannerItem[]; }; export type CtaBanner = { type: 'single-image'; layout: 'image_overlay_content' | '2_column_layout_1_1' | '2_column_layout_2_1'; listing: CtaGroupBannerItem[]; layoutPosition: 'left_banner' | 'right_banner'; fixSizeBanner: boolean; popupSetting?: CtaBannerPopupSetting; advancedSettings?: CtaBannerAdvancedSettings; popupDisplayButton?: CtaBannerPopupDisplayButton; popupButtons?: { primary?: CtaBannerPrimaryButton; secondary?: CtaBannerPrimaryButton; }; } | { type: 'multiple-image'; layout: CtaBannerDisplayLayout; gridLayout: CtaBannerGridLayout; shortReelLayout: boolean; listing: CtaMultiImageGroupBannerItem[]; fixSizeBanner: boolean; applyCarousel: boolean; layoutKeyPillars: boolean; expandAllCategories: boolean; popupSetting?: CtaBannerPopupSetting; advancedSettings?: CtaBannerAdvancedSettings; }; export type CTABannerApi = Extract; export type CTABanner = Extract; export type CTABannerSessionCommonTypeApi = { session_layout: string; title: string; description: string; id_scroll: string; hashtag: string; background_color: string; icon?: string; }; export type CTABannerSessionCommonType = { sessionLayout: string; title: string; description: string; icon: string; idScroll: string; backgroundColor: string; hashtag?: string; sessionId?: string; wrapperProps: { title: string; description: string; icon: string; bgColor: string; }; }; export type SpotlightCTABannerSessionApi = CtaBannerApi & CTABannerSessionCommonTypeApi; export type SpotlightCTABannerSession = CtaBanner & CTABannerSessionCommonType; export {};