import { PrismicImage, PrismicElement, PrismicLink } from './prismic'; import { PrismicDocument } from '../prismic/api'; export interface HomePageData extends CTABlockData { hero_title: string; hero_tagline: string; hero_cta_label: string; hero_cta_link: PrismicLink; hero_tip: PrismicElement; why_title: string; why_perks: WhyPerk[]; offers_title: string; first_offer: PrismicDocument; second_offer: PrismicDocument; third_offer: PrismicDocument; offers_find_cta_label: string; offers_find_cta_link: PrismicLink; how_it_works_title: string; how_it_works_steps: HowItWorkStep[]; faq_title: string; faq_questions: FAQQuestion[]; faq_link: PrismicLink; review_title: string; review_short_description: PrismicElement; review_tagline: string; review_main_video_illustration: PrismicImage; review_main_video_id: string; video_reviews: HomePageVideoReview[]; reviews: TextualReview[]; } export interface BlogHomePageData extends CTABlockData { top_title: string; top_tagline: string; focused_article: PrismicDocument; } export interface HowItWorkStep { step_image: PrismicImage; step_title: string; step_description: PrismicElement; } export interface FAQQuestion { faq_question_title: string; faq_question_answer: PrismicElement; } export interface HomePageVideoReview { video_review_illustration: PrismicImage; video_review_author_logo: PrismicImage; video_review_id: string; video_review_description: PrismicElement; video_review_author: string; video_review_author_company: string; video_review_author_company_link: PrismicLink; } export interface TextualReview { review_platform_logo: PrismicImage; review_grade: number; review_text: PrismicElement; review_author: string; review_author_avatar: PrismicImage; } export type WhyPerk = { perk_image: PrismicImage; perk_title: PrismicElement; perk_description: PrismicElement }; export interface SharedProductData { product_name: string; product_cta_link: PrismicLink; product_shortname: string; product_starting_price: string; product_price_hover_text: PrismicElement; product_short_description: PrismicElement; product_illustration: PrismicImage; } export interface ProductPageData extends SharedProductData { header_cta_label: string; why_title: string; why_perks: WhyPerk[]; review_title: string; reviews: TextualReview[]; how_it_works_title: string; how_it_works_steps: HowItWorkStep[]; faq_title: string; faq_questions: FAQQuestion[]; faq_link: PrismicLink; offers_title: string; first_offer: PrismicDocument; second_offer: PrismicDocument; third_offer: PrismicDocument; offers_find_cta_label: string; offers_find_cta_link: PrismicLink; seo_title: string; seo_description: string; } export interface BlogPostTag extends CTABlockData { name: string; title: string; tagline: string; focused_article: PrismicDocument; } export interface BlogPostAuthor { full_name: string; portrait: PrismicImage; } export interface BlogPostData extends CTABlockData { tag: PrismicDocument; title: string; author: PrismicDocument; commitment_level: 1 | 2 | 3; description: string; read_duration: number; image: PrismicImage; content: PrismicElement; first_related_post: PrismicLink; second_related_post: PrismicLink; third_related_post: PrismicLink; fourth_related_post: PrismicLink; discover: DiscoverEmbedData[]; related_video: RelatedVideoData[]; } export interface DiscoverEmbedData { discover_text: PrismicElement; discover_cta_label: string; discover_cta_link: PrismicLink; } export interface RelatedVideoData { related_video_video_id: PrismicElement; } interface CTABlockData { bottom_cta_title: string; bottom_cta_tagline: string; bottom_cta_contact_label?: string; bottom_cta_funnel_label: string; bottom_cta_funnel_link: PrismicLink; } export interface FooterData { footer_legal_link: PrismicLink; footer_cgu_link: PrismicLink; footer_privacy_link: PrismicLink; footer_solutions: { solution_title: string; solution_link: PrismicLink }[]; footer_about: { about_title: string; about_link: PrismicLink }[]; } export interface HeaderData { header_faq_link: PrismicLink; header_account_link: PrismicLink; header_account_label: string; header_matching_link: PrismicLink; header_matching_label: string; first_product: PrismicDocument; second_product: PrismicDocument; third_product: PrismicDocument; fourth_product: PrismicDocument; fifth_product: PrismicDocument; sixth_product: PrismicDocument; } export interface HeaderProductData { header_cta_label: string; } export interface HeaderBlogData { first_post_tag: PrismicDocument; second_post_tag: PrismicDocument; third_post_tag: PrismicDocument; fourth_post_tag: PrismicDocument; header_blog_discover_link: PrismicLink; header_blog_discover_label: string; } export interface SEOConfiguration { name: string; description: string; theme_color: string; jsonld_name: string; jsonld_description: string; jsonld_foundingdate: string; jsonld_locality: string; jsonld_country: string; jsonld_same_as: { jsonld_url: string }[]; og_title: string; og_description: string; og_image: PrismicImage; } export interface BlogSEOConfiguration { blog_name: string; blog_description: string; blog_theme_color: string; blog_jsonld_name: string; blog_jsonld_description: string; blog_jsonld_foundingdate: string; blog_jsonld_locality: string; blog_jsonld_country: string; blog_jsonld_same_as: { jsonld_url: string }[]; blog_og_title: string; blog_og_description: string; blog_og_image: PrismicImage; } export type SharedConfiguration = FooterData & HeaderData & HeaderBlogData & SEOConfiguration & BlogSEOConfiguration;