// SPDX-FileCopyrightText: 2026 FocusFlow contributors
// SPDX-License-Identifier: AGPL-3.0-only

/// Defines the Scheduler Core public library for the Scheduler Core package.
library;

// Public library entry point for the ADHD scheduling core.
//
// Import this file from app/UI code instead of importing individual files from
// `lib/src/`. That keeps the public API explicit while allowing the internal
// file layout to change later. At the moment this library exposes pure domain
// objects and scheduling helpers only; it does not perform persistence, UI work,
// notifications, or network calls.
//
// Typical usage:
//   1. Build or load `Task`, `ProjectProfile`, and locked-time objects.
//   2. Create a `SchedulingInput` for the day being planned.
//   3. Call `SchedulingEngine` or one of the action services.
//   4. Store the returned immutable task list and surface notices/changes in UI.

// Public exports for the ADHD scheduling core.
//
// Keep this file small. Implementation details belong in `lib/src/`.

export 'src/domain/models.dart';
export 'src/application/application_commands.dart';
export 'src/application/application_layer.dart';
export 'src/application/application_management.dart';
export 'src/application/application_recovery.dart';
export 'src/scheduling/backlog.dart';
export 'src/scheduling/child_tasks.dart';
export 'src/persistence/document_mapping.dart';
export 'src/persistence/document_migration.dart';
export 'src/scheduling/free_slots.dart';
export 'src/domain/locked_time.dart';
export 'src/logging/focus_flow_logger.dart';
export 'src/domain/occupancy_policy.dart';
export 'src/persistence/persistence_contract.dart';
export 'src/domain/project_statistics.dart';
export 'src/scheduling/quick_capture.dart';
export 'src/scheduling/reminder_policy.dart';
export 'src/persistence/repositories.dart';
export 'src/persistence/repository_values.dart';
export 'src/scheduling/scheduling_engine.dart';
export 'src/scheduling/task_actions.dart';
export 'src/scheduling/task_lifecycle.dart';
export 'src/domain/task_statistics.dart';
export 'src/domain/time_contracts.dart';
export 'src/scheduling/today_state.dart';
export 'src/scheduling/timeline_state.dart';
