import { CLI } from '../interfaces/CLI.js';
import { SearchEngine } from '../interfaces/SearchEngine.js';
import { SearchResult } from '../types/index.js';
/**
 * Command-line interface implementation for the JLCPCB component search tool
 */
export declare class CommandLineInterface implements CLI {
    private readonly searchEngine;
    private readonly programName;
    /**
     * Creates a new CommandLineInterface instance
     * @param searchEngine - The search engine to use for queries
     * @param programName - The name of the program (default: 'jlcpcb-search')
     */
    constructor(searchEngine: SearchEngine, programName?: string);
    /**
     * Main entry point for CLI execution
     * @param args - Command line arguments (process.argv)
     */
    run(args: string[]): Promise<void>;
    /**
     * Parses command-line arguments into a structured object
     * @param args - Command-line arguments
     * @returns Parsed arguments object
     */
    private parseArguments;
    /**
     * Validates a search query
     * @param query - Search query to validate
     * @returns True if the query is valid, false otherwise
     */
    private validateQuery;
    /**
     * Prompts the user for a search query when none is provided
     * @returns Promise that resolves to the user's input
     */
    private promptForSearchQuery;
    /**
     * Sorts search results based on the specified criteria
     * @param results - Array of search results to sort
     * @param sortBy - Sorting criteria
     */
    private sortResults;
    /**
     * Gets color for score based on its value
     * @param score - Score value
     * @returns Chalk color function
     */
    private getScoreColor;
    /**
     * Displays search results in a formatted manner
     * @param results - Array of search results to display
     * @param format - Format to use for display (detailed, compact, table, or json)
     */
    displayResults(results: SearchResult[], format?: 'detailed' | 'compact' | 'table' | 'json'): void;
    /**
     * Displays results in detailed format
     * @param results - Array of search results to display
     */
    private displayDetailedResults;
    /**
     * Displays results in compact format
     * @param results - Array of search results to display
     */
    private displayCompactResults;
    /**
     * Displays results in table format
     * @param results - Array of search results to display
     */
    private displayTableResults;
    /**
     * Displays results in JSON format
     * @param results - Array of search results to display
     */
    private displayJsonResults;
    /**
     * Formats and outputs errors in JSON format
     * @param error - The error to format
     * @param code - Optional error code for programmatic handling
     */
    private displayJsonError;
    /**
     * Displays help text and usage information
     */
    displayHelp(): void;
    /**
     * Displays version information
     */
    private displayVersion;
}
//# sourceMappingURL=CommandLineInterface.d.ts.map