> */ public function listRepositories(): array; /** @param array $repository */ public function getCommitSha(array $repository, ?string $ref = null): string; /** @param array $repository */ public function fetchText(array $repository, string $path, string $commitSha): ?string; /** @param array $repository @return list */ public function listTree(array $repository, string $commitSha): array; /** @param array $repository */ public function rawFileUrl(array $repository, string $path, string $commitSha): string; /** @param array $repository @return list> */ public function listReleases(array $repository): array; /** @return array{sha256:string,artifactSize:int} */ public function hashArtifact(string $url, string $expectedSha256 = ''): array; }