/**
 * GitHub Repository Selection Helper
 *
 * Implements US-011: Multi-Repo Selection Strategy for GitHub Init
 *
 * Provides functionality to:
 * - Detect user's GitHub organizations and personal repos
 * - Prompt for repository selection strategy (all org, all personal, pattern glob, pattern regex, explicit list)
 * - Filter repositories by pattern (glob or regex)
 * - Validate repository access
 * - Save selection to config
 */
import { Octokit } from '@octokit/rest';
export interface GitHubRepo {
    name: string;
    full_name: string;
    owner: {
        login: string;
        type: 'User' | 'Organization';
    };
    private: boolean;
    updated_at: string;
    visibility?: 'public' | 'private' | 'internal';
}
export interface RepoSelectionConfig {
    repositories: string[];
    selectionStrategy: 'all-org' | 'all-personal' | 'pattern-glob' | 'pattern-regex' | 'explicit';
    pattern?: string;
    isRegex?: boolean;
    organizationName?: string;
}
/**
 * Fetch user's organizations
 */
export declare function fetchUserOrganizations(octokit: Octokit): Promise<string[]>;
/**
 * Fetch all repositories for a specific organization (with pagination)
 */
export declare function fetchOrgRepositories(octokit: Octokit, org: string): Promise<GitHubRepo[]>;
/**
 * Fetch all personal repositories (owned by authenticated user)
 */
export declare function fetchPersonalRepositories(octokit: Octokit): Promise<GitHubRepo[]>;
/**
 * Filter repositories by glob pattern
 */
export declare function filterRepositoriesByPattern(repos: GitHubRepo[], pattern: string): GitHubRepo[];
/**
 * Filter repositories by regex pattern
 */
export declare function filterRepositoriesByRegex(repos: GitHubRepo[], pattern: string): {
    items: GitHubRepo[];
    error?: string;
};
/**
 * Validate repository access (checks if user has at least read access)
 */
export declare function validateRepositoryAccess(octokit: Octokit, owner: string, repo: string): Promise<boolean>;
/**
 * Show repository preview table
 */
export declare function showRepositoryPreview(repos: GitHubRepo[]): void;
/**
 * Main repository selection flow
 */
export declare function selectRepositories(octokit: Octokit, githubToken: string): Promise<RepoSelectionConfig | null>;
//# sourceMappingURL=github-repo-selector.d.ts.map