* * @since 0.1.0 */ public function find_open_for_subject( SubjectType $subject_type, int $subject_id ): array; /** * Open runs denormalised by customer (cancel-if across subjects). * * @param int $customer_id Customer id. * @return list * * @since 0.1.0 */ public function find_open_for_customer( int $customer_id ): array; /** * Latest non-skipped run for pause checks. * * @param int $automation_id Automation id. * @param SubjectType $subject_type Subject type. * @param int $subject_id Subject id. * * @since 0.1.0 */ public function find_latest_counted( int $automation_id, SubjectType $subject_type, int $subject_id ): ?AutomationRun; /** * Runs counted toward the rate cap since an instant. * * @param int $automation_id Automation id. * @param DateTimeImmutable $since Since UTC. * * @since 0.1.0 */ public function count_since( int $automation_id, DateTimeImmutable $since ): int; /** * Search / list. * * @param array $filters Filters. * @param int $page Page. * @param int $per_page Per page. * @return array{items: list, total: int} * * @since 0.1.0 */ public function search( array $filters, int $page, int $per_page ): array; }