focus-flow/apps/focus_flow_flutter/lib/app/scheduler_app_composition.dart

28 lines
958 B
Dart

// 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<void> dispose();
}