export interface ParsedGitHubTarget { originalUrl: string; owner: string; repo: string; cloneUrl: string; ref?: string; subpath?: string; } export interface MaterializedRemoteTarget { path: string; cleanup: () => void; metadata: ParsedGitHubTarget & { tempDir: string; checkoutPath: string; }; } export type RemoteTargetProgressEvent = { type: 'clone_start'; cloneUrl: string; ref?: string; } | { type: 'clone_done'; checkoutPath: string; } | { type: 'subpath_start'; subpath: string; } | { type: 'ready'; targetPath: string; } | { type: 'failed'; message: string; }; interface CommandResult { status: number | null; stdout: string; stderr: string; error?: NodeJS.ErrnoException; } type CommandRunner = (command: string, args: string[], cwd?: string) => CommandResult; interface MaterializeDeps { runCommand?: CommandRunner; mkdtempSync?: (prefix: string) => string; removeDir?: (target: string) => void; pathExists?: (target: string) => boolean; onProgress?: (event: RemoteTargetProgressEvent) => void; } export declare function isGitHubRepoUrl(input: string): boolean; export declare function parseGitHubTarget(input: string): ParsedGitHubTarget; export declare function materializeRemoteTarget(input: string, deps?: MaterializeDeps): MaterializedRemoteTarget; export {};