/** * Turn a git remote URL into a `vigiles.sh` share deep-link. * * The in-browser demo re-runs the audit LIVE for whoever opens the link, so a * local CLI result is shareable with zero upload and zero backend — the exact gap * behind "sharing works from the website but not from my localhost result". The * recipient can only fetch a PUBLIC repo, so the CLI frames the link as such; we * can't verify visibility offline and deliberately don't (audit stays a pure, * network-free, identical-everywhere read — the caller adds the "public repos" * caveat rather than phoning GitHub). * * Pure + harness-agnostic: parse the raw remote string ONCE into a typed slug * (parse-don't-validate), no I/O here. The git read + the print live in the CLI. */ /** owner/repo parsed from a github.com remote. */ export interface GitHubSlug { readonly owner: string; readonly repo: string; } /** * Parse an https or ssh github.com remote URL into `{ owner, repo }`. Returns * `null` for a non-GitHub remote (self-hosted, GitLab, …) or an unparseable * string. Handles the three real shapes, with or without a `.git` suffix or a * trailing slash: * - `https://github.com/owner/repo(.git)` * - `git@github.com:owner/repo(.git)` * - `ssh://git@github.com/owner/repo(.git)` */ export declare function parseGitHubRemote(remoteUrl: string): GitHubSlug | null; /** The vigiles.sh deep-link that re-runs the audit live for a recipient. */ export declare function githubShareLink(slug: GitHubSlug): string; /** * Convenience: a git remote URL → the share deep-link, or `null` when it isn't a * GitHub repo (so the caller prints nothing). */ export declare function shareLinkForRemote(remoteUrl: string): string | null; //# sourceMappingURL=share-link.d.ts.map