list, 'requests' => int, 'error' => string), or null. */ public function refresh_state(): ?array; /** * Forgets the loaded list and prepares a refresh (the background job then calls crawl_step()). */ public function begin_refresh(): void; /** * Runs one step of the refresh. * * @param int $budget Requests in this step. * @return array|null State after the step ('done', 'error', 'nodes', 'requests'), or null when no refresh runs. */ public function crawl_step( int $budget ): ?array; /** * The marketplace's own category suggestions for a title. * * @param string $title Advert title or product name. * @return array * @throws \Tidelist\Channel\Exception\ChannelException On marketplace errors. */ public function suggest( string $title ): array; /** * Attribute definitions of a category (code, label, validation, allowed values). * * @param int|string $category_id Category ID. */ public function attributes( $category_id ): array; }