export type Platform = 'instagram' | 'youtube' | 'strava'; export type ContextType = 'relacja' | 'opowiesc'; export type StoryStyle = 'noir' | 'fantasy'; // New sub-step type export type EventType = 'sport' | 'culture' | 'trip' | 'party' | 'work' | 'other'; export type Tone = 'funny' | 'serious' | 'inspirational'; export type Goal = 'engagement' | 'viral' | 'sales'; export interface ActivityStats { distance: string; duration: string; elevation: string; } export interface Waypoint { id: string; header: string; context: string; } export interface UploadedFile { id: string; file: File; previewUrl?: string; // For images content?: string; // Base64 or Text content mimeType: string; } export interface TripPoint { place: string; description: string; addressPreview?: string; // Full address for UI confirmation } export interface TripStop { id: string; place: string; description: string; addressPreview?: string; // Full address for UI confirmation } export interface TripData { startPoint: TripPoint; endPoint: TripPoint; stops: TripStop[]; travelMode: 'DRIVING' | 'WALKING' | null; googleMapsKey?: string; // Restored for manual fallback } export interface WizardState { step: number; context: ContextType | null; storyStyle: StoryStyle | null; // New field platform: Platform | null; eventType: EventType | null; tone: Tone | null; goal: Goal | null; title: string; description: string; files: UploadedFile[]; stats: ActivityStats; waypoints: Waypoint[]; tripData?: TripData; // Optional, only for eventType === 'trip' } export interface SlideContent { overlay_text: string; image_prompt: string; notes: string; } export interface GeneratedContent { caption: string; slides: SlideContent[]; } export enum Step { CONTEXT = 0, EVENT_TYPE = 1, PLATFORM = 2, TONE_GOAL = 3, DETAILS = 4, RESULT = 5, }