Every entry at once (small archives, tests). */ public function entries(): array; /** Number of entries. */ public function entry_count(): int; /** Entry number $i (0-based, archive order). */ public function entry_at( int $i ): array; /** @return iterable Every entry, one at a time. */ public function each(): iterable; /** The entry at $rel, or null. */ public function find( string $rel ): ?array; /** The archive's manifest in the .mmig shape (home, siteurl, prefix, content_abs, …). */ public function manifest(): array; public function is_encrypted(): bool; /** A whole small entry, verified. */ public function read_string( string $rel ): string; /** The first $max bytes of an entry, unverified. */ public function read_head( string $rel, int $max ): string; /** * Extracts (part of) an entry to $dest_abs, resumable from the returned cursor (start with []). * * @return array{done:bool, cursor:array} */ public function extract( string $rel, string $dest_abs, array $cursor, float $deadline ): array; }