import { HeroConfig } from './hero.interfaces';
import { FeatureGridConfig } from './feature.interfaces';
import { TestimonialCarouselConfig, StatisticsConfig } from './social-proof.interfaces';
import { PricingTableConfig, CTASectionConfig } from './conversion.interfaces';
import { LandingHeaderConfig, FooterConfig } from './navigation.interfaces';
import { FAQConfig, TeamConfig, TimelineConfig } from './content.interfaces';

export interface LandingPageSection {
  id: string;
  component: string;
  configuration: any;
  visible?: boolean;
  order?: number;
}

export interface LandingPageTemplate {
  id: string;
  name: string;
  description: string;
  type: 'saas' | 'product' | 'agency' | 'custom';
  sections: LandingPageSection[];
  theme?: 'light' | 'dark' | 'gradient';
  metadata?: {
    title?: string;
    description?: string;
    keywords?: string[];
    author?: string;
  };
}

// Pre-configured template interfaces
export interface SaaSTemplateConfig {
  hero: HeroConfig;
  features: FeatureGridConfig;
  socialProof: StatisticsConfig;
  pricing: PricingTableConfig;
  testimonials: TestimonialCarouselConfig;
  faq: FAQConfig;
  cta: CTASectionConfig;
  header?: LandingHeaderConfig;
  footer?: FooterConfig;
}

export interface ProductTemplateConfig {
  hero: HeroConfig;
  features: FeatureGridConfig;
  testimonials: TestimonialCarouselConfig;
  pricing: PricingTableConfig;
  cta: CTASectionConfig;
  header?: LandingHeaderConfig;
  footer?: FooterConfig;
}

export interface AgencyTemplateConfig {
  hero: HeroConfig;
  services: FeatureGridConfig;
  team: TeamConfig;
  timeline: TimelineConfig;
  testimonials: TestimonialCarouselConfig;
  cta: CTASectionConfig;
  header?: LandingHeaderConfig;
  footer?: FooterConfig;
}