import { Repository } from '../database/index.js';
export interface RepoToAdd {
    path: string;
    action: 'move' | 'clone';
}
export interface RepoInfo {
    name: string;
    path: string;
    fullPath: string;
    sourceUrl?: string;
    branch?: string;
    status: 'clean' | 'dirty' | 'missing';
    commitsAhead: number;
    commitsBehind: number;
    addedAt?: string;
}
/**
 * Check if we're currently in a git repository
 */
export declare function isInGitRepo(dir?: string): boolean;
/**
 * Get the current repository name
 */
export declare function getCurrentRepoName(dir?: string): string | null;
/**
 * Prompt user to add repositories interactively
 */
export declare function promptForRepositories(currentDir?: string, existingRepos?: string[]): Promise<RepoToAdd[]>;
/**
 * Add repositories to HQ
 */
export declare function addRepositoriesToHQ(hqPath: string, repos: RepoToAdd[]): Promise<string[]>;
/**
 * Update HQ config with new repositories
 */
export declare function updateHQRepos(hqPath: string, newRepos: string[]): void;
export interface WorkspaceRepoInfo {
    hqPath: string;
    reposPath: string;
    repositories: RepoInfo[];
}
/**
 * Find HQ root by traversing upward
 * @deprecated Use findHQRoot from '../workspace.js' instead for PRLT_HQ_PATH support
 */
export { findHQRoot } from '../workspace.js';
/**
 * Get workspace repository information
 */
export declare function getWorkspaceRepoInfo(): WorkspaceRepoInfo;
/**
 * Get detailed status for a repository
 */
export declare function getRepoStatus(name: string, fullPath: string, dbRepo?: Repository): RepoInfo;
/**
 * Add a single repository to the HQ (file system + database + agent worktrees)
 */
export declare function addRepository(hqPath: string, repoPath: string, action: 'clone' | 'move'): Promise<{
    success: boolean;
    name: string;
    error?: string;
}>;
/**
 * Remove a repository from the HQ
 */
export declare function removeRepository(hqPath: string, repoName: string, keepFiles?: boolean): Promise<{
    success: boolean;
    error?: string;
}>;
/**
 * Prompt to add a single repository
 */
export declare function promptAddSingleRepo(): Promise<RepoToAdd | null>;
/**
 * Prompt to select a repository from the workspace
 */
export declare function promptSelectRepo(message?: string, allowCancel?: boolean): Promise<string | null>;
/**
 * Prompt to select multiple repositories
 */
export declare function promptSelectMultipleRepos(message?: string): Promise<string[]>;
