import { Config } from '../../types.js';
/**
 * Interface for GitHub repository search results
 */
export interface GitHubRepository {
    name: string;
    full_name: string;
    html_url: string;
    description: string;
    stargazers_count: number;
    created_at: string;
    updated_at: string;
    topics: string[];
}
/**
 * Class for handling GitHub repository search operations specifically for MCP
 */
export declare class GitHubMCPSearch {
    private config;
    constructor(config: Config);
    /**
     * Extract keywords from a natural language query for GitHub search
     * @param query Original user query
     * @returns Array of extracted keywords for GitHub search
     */
    extractSearchKeywords(query: string): Promise<string[]>;
    /**
     * Basic keyword extraction from query as fallback
     * @param query Original user query
     * @returns Array of extracted keywords
     */
    private extractKeywordsBasic;
    /**
     * Search GitHub repositories for a specific keyword
     * @param keyword Search keyword
     * @param maxResults Maximum number of results to return
     * @returns Array of GitHub repositories
     */
    searchGitHubReposForKeyword(keyword: string, maxResults?: number): Promise<GitHubRepository[]>;
    /**
     * Process user query to find relevant GitHub repositories with "mcp" in the name
     * @param query User's original query
     * @param maxResultsPerKeyword Maximum number of results per keyword
     * @returns Array of unique GitHub repositories matching the query
     */
    findGitHubRepositories(query: string, maxResultsPerKeyword?: number): Promise<GitHubRepository[]>;
    /**
     * Filter out duplicate repositories based on full_name
     * @param repos Array of GitHub repositories
     * @returns Array of unique GitHub repositories
     */
    private filterDuplicateRepositories;
}
