namespace UtopiaCanteenSystem.Services;
///
/// Navigates between main views (AdminLogin, Scanner, Dashboard, Settings).
///
public interface INavigationService
{
/// Current view model to display in the main content area.
object? CurrentViewModel { get; }
/// Raised when CurrentViewModel changes.
event EventHandler? CurrentViewModelChanged;
void NavigateToAdminLogin();
void NavigateToScanner();
void NavigateToDashboard();
void NavigateToAdminSettingsAuth();
void NavigateToSettings();
/// Opens Meal Schedules admin screen (Phase 2.5).
void NavigateToMealSchedules();
/// Starts a new dashboard session (used after scan).
void StartDashboardSession();
/// Returns true when the dashboard session is expired for the given timeout.
bool IsDashboardSessionExpired(TimeSpan timeout);
/// Navigates back from Settings based on dashboard session expiry.
void NavigateBackFromSettings(TimeSpan timeout);
/// Returns elapsed time since dashboard session start.
TimeSpan GetDashboardSessionElapsed();
}