// Global type definitions for CHORUS Services website export interface ChorusComponent { id: string; name: string; description: string; icon: string; color: string; features: string[]; status: 'active' | 'development' | 'planned'; } export interface ServiceFeature { title: string; description: string; icon: React.ReactNode; color?: string; } export interface NavigationItem { key: string; label: string; href: string; icon?: React.ReactNode; children?: NavigationItem[]; } export interface SEOData { title: string; description: string; keywords?: string[]; ogImage?: string; canonicalUrl?: string; } export interface AnimationVariant { hidden: { opacity: number; y?: number; x?: number; scale?: number; }; visible: { opacity: number; y?: number; x?: number; scale?: number; transition?: { duration?: number; delay?: number; ease?: string; staggerChildren?: number; }; }; } export interface ContactForm { name: string; email: string; company?: string; message: string; subject?: string; } export interface PerformanceMetrics { throughput: number; latency: number; accuracy: number; uptime: number; } export interface PricingTier { id: string; name: string; price: number; period: 'month' | 'year'; features: string[]; recommended?: boolean; description: string; } export interface TeamMember { id: string; name: string; role: string; bio: string; avatar?: string; social?: { linkedin?: string; twitter?: string; github?: string; }; } export interface BlogPost { id: string; title: string; excerpt: string; content: string; author: string; publishedAt: string; updatedAt?: string; tags: string[]; featuredImage?: string; readTime: number; } export interface APIResponse { success: boolean; data?: T; error?: string; message?: string; } export interface LoadingState { isLoading: boolean; error?: string | null; } // Theme-related types export interface ThemeColors { primary: string; secondary: string; success: string; warning: string; error: string; info: string; background: string; surface: string; text: string; } // Component prop types export interface BaseComponentProps { className?: string; children?: React.ReactNode; id?: string; 'data-testid'?: string; } export interface ResponsiveProps { xs?: number; sm?: number; md?: number; lg?: number; xl?: number; xxl?: number; } // Event handler types export type ClickHandler = (event: React.MouseEvent) => void; export type SubmitHandler = (values: T) => void | Promise; export type ChangeHandler = (value: T) => void; // Utility types export type Prettify = { [K in keyof T]: T[K]; } & {}; export type Optional = Omit & Partial>; export type Required = T & { [P in K]-?: T[P]; }; // Status types export type Status = 'idle' | 'loading' | 'success' | 'error'; export type Size = 'small' | 'medium' | 'large'; export type Variant = 'primary' | 'secondary' | 'outline' | 'ghost'; // CHORUS-specific types export interface ChorusMetrics { whoosh: PerformanceMetrics; bzzz: PerformanceMetrics; slurp: PerformanceMetrics; cooee: PerformanceMetrics; } export interface SystemHealth { overall: 'healthy' | 'warning' | 'critical'; components: { [key in 'whoosh' | 'bzzz' | 'slurp' | 'cooee']: 'online' | 'offline' | 'maintenance'; }; lastUpdated: string; } export interface OrchestrationTask { id: string; name: string; type: 'processing' | 'analysis' | 'transformation' | 'monitoring'; status: 'pending' | 'running' | 'completed' | 'failed'; component: 'whoosh' | 'bzzz' | 'slurp' | 'cooee'; startTime?: string; endTime?: string; progress?: number; result?: any; }