// SPDX-FileCopyrightText: 2026 FocusFlow contributors // SPDX-License-Identifier: AGPL-3.0-only /// Defines the app composition protocol used by FocusFlow widgets. library; import '../controllers/scheduler_command_controller.dart'; import '../controllers/today_screen_controller.dart'; /// Runtime-independent composition surface consumed by the app shell. abstract interface class SchedulerAppComposition { /// Human-readable label for the selected local date. String get dateLabel; /// Default project id used by quick-capture commands. String get defaultProjectId; /// Creates the controller used by the compact Today screen. TodayScreenController createTodayScreenController(); /// Creates the command controller used by interactive scheduler controls. SchedulerCommandController createCommandController({ required ReadRefresh refreshReads, }); /// Releases resources owned by the composition. Future dispose(); }