import React from 'react'; export interface NavLinkItem { id: string; label: string; href: string; icon?: React.ElementType; children?: NavLinkItem[]; targetView?: CurrentView; // For view switching } export interface GalleryItem { id: string; type: 'image' | 'video'; url: string; altText?: string; caption?: string; } export interface Post { id:string; title: string; category: string; date?: string; publishedAt?: string; readTime?: string; imageUrl: string; videoUrl?: string; isFeatured?: boolean; description?: string; fullContent?: string | React.ReactNode; // For detail view gallery?: GalleryItem[]; // Added gallery href: string; // Will be used to set selectedItemId or for direct linking if routing is added } export interface NewsArticle { id: string; title: string; category: string; date?: string; publishedAt?: string; imageUrl: string; href: string; description?: string; fullContent?: string | React.ReactNode; // For detail view gallery?: GalleryItem[]; // Added gallery } export interface ResearchPaper { id: string; title: string; category: string; // e.g., "Публикация", "Статья" date?: string; publishedAt?: string; imageUrl: string; href: string; authors?: string[]; abstract?: string; // For detail view fullContent?: string | React.ReactNode; // For detail view gallery?: GalleryItem[]; // Added gallery for ResearchPaper } export interface BusinessStory { id: string; title: string; category: string; // e.g., "API", "ChatGPT", "Партнерство" imageUrl: string; href: string; description?: string; fullContent?: string | React.ReactNode; // For detail view gallery?: GalleryItem[]; // Added gallery } export interface Vacancy { id: string; title: string; department: string; location: string; type: string; // e.g., Full-time, Part-time description: string; // Short description for the card fullDescription?: string | React.ReactNode; // Detailed description for the detail page responsibilities?: string[]; qualifications?: string[]; offer?: string[]; href: string; // For consistency, though navigation will use selectedItemId } // For EducationBusinessSection export interface BusinessCourse { icon: string; // Updated to string to hold icon name from Strapi title: string; description: string; } // For EducationStudentsSection export interface StudentProgram { icon: string; // Updated to string to hold icon name from Strapi title: string; targetAudience: string; description: string; } // For AcceleratorAboutSection export interface AcceleratorFeature { icon: React.ElementType; title: string; description: string; } // For BusinessServicesSection (Services) export interface ServiceItemData { icon: string; // Updated to string to hold icon name from Strapi title: string; description: string; } // For BusinessServicesSection (Client Logos) export interface ClientLogo { id: string; name: string; imageUrl: string; } // For AcceleratorProjectsSection export interface AcceleratorProject { id: string; name: string; tagline: string; description: string; imageUrl: string; category: string; // e.g., Healthcare AI, FinTech, EdTech websiteUrl?: string; statuspro: 'Active' | 'Graduated' | 'Acquired'; // Renamed from status } // For AcceleratorInvestmentSection export interface InvestmentProject { id: string; name: string; industry: string; problem: string; solution: string; teamSize: number; fundingSought: string; // e.g., "$500K - $1M" imageUrl: string; contactEmail?: string; } export type CurrentView = | 'main' | 'about' | 'mission' | 'careers' | 'businessLanding' | 'businessServices' | 'educationBusiness' | 'educationStudents' | 'researchAll' | 'newsAll' | 'storiesAll' | 'acceleratorAbout' | 'acceleratorProjects' | 'acceleratorInvestment' | 'blogPostDetail' | 'newsArticleDetail' | 'researchPaperDetail' | 'businessStoryDetail' | 'vacancyDetail' | 'termsOfUse' // New view for Terms of Use | 'privacyPolicy'; // New view for Privacy Policy // --- Content Types for Centralized Text --- export interface HeroContent { titlePart1: string; titlePart2Gradient: string; subtitle: string; primaryButtonText: string; secondaryButtonText: string; scrollDownAriaLabel: string; } export interface AboutUsContent { title: string; paragraph1: string; paragraph2: string; teamTitle: string; teamParagraph: string; valuesTitle: string; valuesList: { strong: string; text: string }[]; closingParagraph: string; } export interface FooterLink { text: string; href: string; targetView: CurrentView; // Added to control view switching } export interface FooterSocialLink { name: string; href: string; icon: React.ElementType; // Added icon type ariaLabel: string; // Added ariaLabel } export interface FooterContent { legalTitle: string; legalLinks: FooterLink[]; copyrightText: (year: number) => string; tagline: string; credits: string; socialTitle: string; socialLinks: FooterSocialLink[]; address: string; email: string; emailHref: string; companyName?: string; companyInn?: string; } export interface ContactMethodUI { id: string; name: string; href: string; icon: React.ElementType; bgColor: string; hoverBgColor: string; ringColor: string; ariaLabel: string; } export interface ConnectSectionContent { title: string; subtitle: string; contactMethods: ContactMethodUI[]; } export interface BlogSectionContent { title: string; titleGradientPart: string; showAllText: string; showAllAriaLabel: string; } export interface NewsSectionContent { title: string; titleGradientPart: string; showAllText: string; showAllAriaLabel: string; } export interface ResearchSectionContent { title: string; titleGradientPart: string; showAllText: string; showAllAriaLabel: string; } export interface BusinessSectionContent { title: string; titleGradientPart: string; showAllText: string; showAllAriaLabel: string; } export interface MissionSection { title: string; content: string | React.ReactNode; } export interface OurMissionContent { title: string; preamble: string | React.ReactNode; sections: MissionSection[]; closingStatement: string; } export interface CareersPageContent { title: string; titleGradientPart: string; subtitle: string; noVacanciesTitle: string; noVacanciesMessagePt1: string; noVacanciesMessagePt2: string; noVacanciesContactEmailText: string; hrEmail: string; notFoundTitle: string; notFoundMessage: string; applyButtonText: string; applySubject: string; } export interface BusinessLandingContent { title: string; titleGradientPart: string; subtitle: string; emptyStateTitle: string; emptyStateMessage: string; } export interface BusinessServicesContent { title: string; titleGradientPart: string; subtitle: string; trustedByTitle: string; ctaTitle: string; ctaSubtitle: string; contactMethods: ContactMethodUI[]; } export interface EducationBusinessContent { title: string; titleGradientPart: string; subtitle: string; ctaTitle: string; ctaSubtitle: string; contactMethods: ContactMethodUI[]; } export interface EducationStudentsContent { title: string; titleGradientPart: string; subtitle: string; ctaTitle: string; ctaSubtitle: string; contactMethods: ContactMethodUI[]; } export interface AllItemsPageContent { title: string; titleGradientPart: string; backButtonTextPrefix: string; backButtonTextSuffix: string; subtitle: string; emptyStateTitle: string; emptyStateMessage: string; } export interface AcceleratorAboutContent { title: string; titleGradientPart: string; subtitle: string; whatWeOfferTitle: string; whatWeOfferParagraph: string; ctaTitle: string; ctaSubtitle: string; contactMethods: ContactMethodUI[]; } export interface AcceleratorProjectsContent { title: string; titleGradientPart: string; subtitle: string; emptyStateTitle: string; emptyStateMessage: string; projectWebsiteButtonText: string; } export interface AcceleratorInvestmentContent { title: string; titleGradientPart: string; subtitle: string; problemLabel: string; solutionLabel: string; teamLabel: string; fundingLabel: string; contactProjectButtonText: string; requestContactButtonText: string; emptyStateTitle: string; emptyStateMessage: string; investorCtaTitle: string; investorCtaSubtitle: string; contactMethods: ContactMethodUI[]; } export interface DetailPageContent { // Base for specific detail page content types notFoundTitle: string; backButtonText: string; itemTypeSingular: string; itemTypePlural: string; galleryTitle?: string; // Added gallery title keepReadingTitle?: string; viewAllButtonText?: string; previousItemButtonLabel?: string; nextItemButtonLabel?: string; noPreviousItemText?: string; noNextItemText?: string; } export interface BlogPostDetailContent extends DetailPageContent {} export interface NewsArticleDetailContent extends DetailPageContent {} export interface BusinessStoryDetailContent extends DetailPageContent {} export interface ResearchPaperDetailContent extends DetailPageContent { abstractTitle: string; } export interface VacancyDetailContent { notFoundTitle: string; vacancyNotFoundMessage: string; backButtonText: string; descriptionTitle: string; responsibilitiesTitle: string; qualificationsTitle: string; offerTitle: string; applyPromptTitle: string; applyPromptMessage: string; applyButtonText: string; hrEmail: string; mailtoSubjectPrefix: string; mailtoBodyPrefix: string; } export interface LegalPageSection { heading?: string; content: string | React.ReactNode; } export interface TermsOfUseContent { title: string; pageTitleGradientPart: string; lastUpdated: string; backButtonText: string; sections: LegalPageSection[]; } export interface PrivacyPolicyContent { title: string; pageTitleGradientPart: string; lastUpdated: string; backButtonText: string; sections: LegalPageSection[]; } export interface UITexts { playVideoAriaLabel: string; pauseVideoAriaLabel: string; sidebarToggleOpenAriaLabel: string; sidebarToggleCloseAriaLabel: string; }