*/ public function findAll(): array; public function findByMessageId(string $messageId): ?MailMessage; public function findByFolderAndUid(MailFolder $folder, int $uid): ?MailMessage; /** * @return list */ public function findByFolderPaginated(MailFolder $folder, int $limit, int $offset): array; public function countUnreadByFolder(MailFolder $folder): int; public function findMaxUidInFolder(MailFolder $folder): int; /** * @return list */ public function findLastNByFolder(MailFolder $folder, int $limit): array; /** * @return list */ public function findAllUidsByFolder(MailFolder $folder): array; /** * Pagination cursor : retourne $limit messages apres le cursor (sentAt DESC, id DESC). * Cursor format : base64url(sentAt_iso8601:id) - null pour la premiere page. * * @return array{messages: list, nextCursor: ?string} */ public function findByFolderCursor(MailFolder $folder, int $limit, ?string $cursor): array; }