import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';

abstract class ThreadDetailDataSource {
  Future<List<EmailId>> getThreadById(
    ThreadId threadId,
    AccountId accountId,
  );

  Future<List<Email>> getEmailsByIds(
    Session session,
    AccountId accountId,
    List<EmailId> emailIds, {
    Properties? properties,
  });

  Future<bool> getThreadDetailStatus();
}