,limit:mixed} $request * @return array{state:'read',ids:array}|array{state:'failed',error:string} */ public function readTermChildIds(array $request): array; // --- Permalink cache table: read, write, repopulate, truncate. The cache // exists because resolving a post ID -> permalink is too expensive to do // per-request on large sites, so a denormalized table keeps the answer ready. /** @return void */ public function truncatePermalinkCacheTable(): void; /** @param int $post_id @return void */ public function removeFromPermalinkCache(int $post_id): void; /** * @param int|string $id * @return string|null */ public function getPermalinkFromCache($id); /** * @param array $ids * @return array */ public function getPermalinksByIds(array $ids); /** * @param int|string $id * @return array|null */ public function getPermalinkEtcFromCache($id); /** @return array */ public function updatePermalinkCache(); /** @return array */ public function updatePermalinkCacheParentPages(); /** @return int */ public function getPermalinkCacheCount(): int; // --- Spelling cache: stores the result of an expensive Levenshtein scan // keyed on the requested URL, with explicit invalidation. /** * @param string $requestedURLRaw * @param mixed $returnValue * @return void */ public function storeSpellingPermalinksToCache(string $requestedURLRaw, $returnValue): void; /** * @param string $requestedURLRaw * @return mixed */ public function getSpellingPermalinksFromCache(string $requestedURLRaw); /** @return void */ public function deleteSpellingCache(): void; }