export interface GitRemoteLocation { transport: "scp" | "ssh" | "http" | "https"; host: string; /** * Explicit non-default port from the remote (e.g. a self-hosted forge on * `:60443`), or undefined for a default-port or scp-form remote. Kept separate * from `host` so host-identity matching (forge detection, cloud-host checks) * stays port-agnostic; only consumers that reconstruct a URL (web links) use it. */ port?: string; path: string; } export interface GitHubRemoteIdentity { owner: string; name: string; repo: string; } export declare function parseGitHubRemoteUrl(remoteUrl: string): GitHubRemoteIdentity | null; /** * Whether `repo` is already a complete git remote (a URL or scp-like address) * rather than `owner/repo` shorthand that still needs a clone protocol picked. * * Clients (app + CLI) and the daemon must agree on this classification: the * daemon treats `parseGitRemoteLocation(repo) !== null` as "complete remote" * and everything else as shorthand, so reuse the same parser here instead of a * separate regex that would drift (e.g. accepting `git://` the parser rejects). */ export declare function isCompleteGitRemote(repo: string): boolean; export declare function parseGitRemoteLocation(remoteUrl: string): GitRemoteLocation | null; export declare function parseGitHubRemoteIdentity(path: string): GitHubRemoteIdentity | null; export declare function isGitHubHost(host: string): boolean; export declare function normalizeHost(host: string): string; //# sourceMappingURL=git-remote.d.ts.map