/**
 * Git Remote URL Generator
 *
 * Generates platform-agnostic Git remote URLs in SSH or HTTPS format.
 * Supports GitHub, GitLab, Bitbucket, and custom Git platforms.
 *
 * @module url-generator
 */
export type UrlType = 'ssh' | 'https';
export interface GitPlatform {
    host: string;
    sshUser?: string;
}
/**
 * Generate Git remote URL in SSH or HTTPS format
 *
 * @param owner - Repository owner/organization
 * @param repo - Repository name
 * @param urlType - 'ssh' or 'https'
 * @param platform - Git platform configuration
 * @returns Formatted Git remote URL
 *
 * @example
 * ```typescript
 * // SSH format
 * generateGitRemoteUrl('myorg', 'myrepo', 'ssh', { host: 'github.com' })
 * // => 'git@github.com:myorg/myrepo.git'
 *
 * // HTTPS format
 * generateGitRemoteUrl('myorg', 'myrepo', 'https', { host: 'github.com' })
 * // => 'https://github.com/myorg/myrepo.git'
 *
 * // GitLab SSH
 * generateGitRemoteUrl('myorg', 'myrepo', 'ssh', { host: 'gitlab.com' })
 * // => 'git@gitlab.com:myorg/myrepo.git'
 *
 * // Self-hosted GitLab HTTPS
 * generateGitRemoteUrl('myorg', 'myrepo', 'https', { host: 'gitlab.company.com' })
 * // => 'https://gitlab.company.com/myorg/myrepo.git'
 * ```
 */
export declare function generateGitRemoteUrl(owner: string, repo: string, urlType: UrlType, platform?: GitPlatform): string;
/**
 * Parse existing Git remote URL to extract components
 *
 * @param url - Git remote URL (SSH or HTTPS)
 * @returns Parsed components or null if invalid
 *
 * @example
 * ```typescript
 * parseGitRemoteUrl('git@github.com:myorg/myrepo.git')
 * // => { owner: 'myorg', repo: 'myrepo', urlType: 'ssh', host: 'github.com' }
 *
 * parseGitRemoteUrl('https://gitlab.com/myorg/myrepo.git')
 * // => { owner: 'myorg', repo: 'myrepo', urlType: 'https', host: 'gitlab.com' }
 * ```
 */
export declare function parseGitRemoteUrl(url: string): {
    owner: string;
    repo: string;
    urlType: UrlType;
    host: string;
} | null;
/**
 * Parse a repository identifier from various input formats.
 *
 * Supports:
 * - `owner/repo` shorthand (assumes github.com)
 * - `github.com/owner/repo` (bare host, no protocol)
 * - `https://github.com/owner/repo[.git][/tree/main/...]`
 * - `git@github.com:owner/repo[.git]`
 *
 * Delegates to `parseGitRemoteUrl()` for standard git URL formats.
 *
 * @param input - Repository identifier in any supported format
 * @returns Parsed owner/repo with input type, or null if unparseable
 */
export declare function parseRepoIdentifier(input: string): {
    owner: string;
    repo: string;
    inputType: 'ssh' | 'https' | 'shorthand';
} | null;
/**
 * Detect Git platform from hostname
 *
 * @param host - Hostname (e.g., 'github.com', 'gitlab.company.com')
 * @returns Platform name or 'unknown'
 *
 * @example
 * ```typescript
 * detectGitPlatform('github.com')       // => 'github'
 * detectGitPlatform('gitlab.com')       // => 'gitlab'
 * detectGitPlatform('bitbucket.org')    // => 'bitbucket'
 * detectGitPlatform('gitlab.internal')  // => 'gitlab' (self-hosted)
 * detectGitPlatform('git.company.com')  // => 'unknown'
 * ```
 */
export declare function detectGitPlatform(host: string): 'github' | 'gitlab' | 'bitbucket' | 'azure-devops' | 'unknown';
//# sourceMappingURL=url-generator.d.ts.map