// src/types/navigation.ts
import { NavigationContainerRef } from '@react-navigation/native'; // Import NavigationContainerRef

// Screens within the main Mobile Bottom Tab Navigator
export type MobileTabParamList = {
    DashboardTab: undefined;
    ChatTab: undefined;
    CalendarTab: undefined;
    ProfileTab: undefined;
};
  
// Screens within the Web Content Area Stack Navigator
export type WebContentStackParamList = {
    Dashboard: undefined;
    Chat: undefined;
    Calendar: undefined;
    Profile: undefined;
    EventForm?: { eventId?: number; selectedDate?: string };
};

// Screens managed by the Root Navigator (Auth vs App)
export type RootStackParamList = {
    AuthFlow: undefined; // Represents the stack for unauthenticated users
    AppFlow: undefined;  // Represents the stack/layout for authenticated users
};

// Screens within the Authentication Flow
export type AuthStackParamList = {
    Login: undefined;
    // Example: SignUp: undefined; ForgotPassword: undefined;
};
  
// Screens within the main App stack (Mobile)
export type AppStackParamList = {
    MainTabs: undefined; // Represents the MobileTabNavigator
    EventForm: { eventId?: number; selectedDate?: string };
};

// Type for the ref used in WebAppLayout
export type WebContentNavigationProp = NavigationContainerRef<WebContentStackParamList>;