import type { IMarketplaceTransport } from './http-marketplace-source.js'; /** Parse `owner`/`repo` from a GitHub URL or bare `owner/repo`. */ export declare function parseGitHubRepo(url: string): { owner: string; repo: string; }; /** Map a parsed `.claude-plugin/marketplace.json` to plugin coordinates. */ export declare function parseMarketplace(json: unknown): Array<{ plugin: string; version: string; sourcePath: string; }>; /** Extract subdirectory names from a GitHub Contents-API directory response. */ export declare function skillDirsFromContents(json: unknown): string[]; export interface GitHubTransportOptions { owner: string; repo: string; /** Branch/tag/sha; default = the repo's `default_branch`. */ ref?: string; /** Optional auth token (lifts rate limit + enables private repos). */ token?: string; /** Plugins to enumerate; `['*']` = all. Only these get a Contents-API call. */ enabled: readonly string[]; /** Injected for tests; default global `fetch`. */ fetchImpl?: typeof fetch; } /** * An {@link IMarketplaceTransport} over a GitHub Claude-plugin repo. Reads the * standard layout via HTTPS into memory (no clone, no FS): marketplace.json and * each SKILL.md from `raw.githubusercontent.com`; per-plugin `skills/` listings * from the GitHub Contents API. NOT unit-tested over a real network — the unit * tests inject `fetchImpl`. */ export declare function makeGitHubTransport(opts: GitHubTransportOptions): IMarketplaceTransport; //# sourceMappingURL=github-transport.d.ts.map