import { CTAButton } from './shared.interfaces';

export type { CTAButton };

export interface NavigationItem {
  id: string;
  label: string;
  url?: string;
  route?: string;
  target?: '_blank' | '_self';
  icon?: string;
  badge?: string;
  children?: NavigationItem[];
  action?: () => void;
}

export interface MegaMenuItem {
  id: string;
  label: string;
  items: NavigationItem[];
  featured?: FeaturedContent;
}

export interface FeaturedContent {
  title: string;
  description: string;
  imageUrl?: string;
  url: string;
  buttonText: string;
}

export interface LandingHeaderConfig {
  logo: LogoConfig;
  navigation: NavigationItem[];
  megaMenu?: MegaMenuItem[];
  ctaButton?: CTAButton;
  transparent?: boolean;
  sticky?: boolean;
  showMobileMenu?: boolean;
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | 'full';
  maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | 'full';
  theme?: 'light' | 'dark' | 'auto';
}

export interface LogoConfig {
  text?: string;
  imageUrl?: string;
  url?: string;
  width?: number;
  height?: number;
}

export interface FooterColumn {
  id: string;
  title: string;
  items: FooterLink[];
}

export interface FooterLink {
  id: string;
  label: string;
  url?: string;
  route?: string;
  icon?: string;
  badge?: string;
  target?: '_blank' | '_self';
  action?: () => void;
}

export interface SocialLink {
  id: string;
  platform: 'facebook' | 'twitter' | 'instagram' | 'linkedin' | 'youtube' | 'github' | 'dribbble';
  url: string;
  icon?: string;
  label?: string;
}

export interface FooterConfig {
  columns: FooterColumn[];
  socialLinks?: SocialLink[];
  copyright?: string;
  logo?: LogoConfig;
  newsletter?: NewsletterConfig;
  legalLinks?: FooterLink[];
  theme?: 'light' | 'dark';
  showDivider?: boolean;
}

export interface NewsletterConfig {
  title: string;
  description?: string;
  placeholder: string;
  buttonText: string;
  onSubmit: (email: string) => void;
}