/**
 * File Path Autocomplete
 *
 * Provides intelligent file path autocomplete:
 * - Directory traversal
 * - Fuzzy matching
 * - Recent files priority
 * - Gitignore awareness
 */
export interface PathSuggestion {
    path: string;
    displayName: string;
    type: 'file' | 'directory';
    score: number;
    isHidden: boolean;
    extension?: string;
    size?: number;
    modifiedAt?: Date;
}
export interface AutocompleteOptions {
    /** Maximum number of suggestions */
    maxSuggestions?: number;
    /** Include hidden files (starting with .) */
    showHidden?: boolean;
    /** Only show directories */
    directoriesOnly?: boolean;
    /** Only show files */
    filesOnly?: boolean;
    /** Filter by extensions (e.g., ['.ts', '.js']) */
    extensions?: string[];
    /** Prioritize recently modified files */
    prioritizeRecent?: boolean;
    /** Fuzzy matching */
    fuzzyMatch?: boolean;
    /** Respect gitignore */
    respectGitignore?: boolean;
    /** Working directory */
    cwd?: string;
}
/**
 * Get path autocomplete suggestions
 */
export declare function getPathSuggestions(input: string, options?: AutocompleteOptions): Promise<PathSuggestion[]>;
/**
 * Record file access for recent files tracking
 */
export declare function recordFileAccess(filePath: string): void;
/**
 * Format suggestions for display
 */
export declare function formatSuggestions(suggestions: PathSuggestion[], highlightIndex?: number): string;
/**
 * Complete path (get the completed path string)
 */
export declare function completePath(input: string, suggestion: PathSuggestion): string;
/**
 * Get common prefix from suggestions (for tab completion)
 */
export declare function getCommonPrefix(suggestions: PathSuggestion[]): string;
/**
 * PathAutocomplete class for interactive use
 */
export declare class PathAutocomplete {
    private options;
    private currentInput;
    private suggestions;
    private selectedIndex;
    constructor(options?: AutocompleteOptions);
    /**
     * Update input and refresh suggestions
     */
    update(input: string): Promise<PathSuggestion[]>;
    /**
     * Move selection up
     */
    selectPrevious(): void;
    /**
     * Move selection down
     */
    selectNext(): void;
    /**
     * Get current selection
     */
    getSelection(): PathSuggestion | undefined;
    /**
     * Accept current selection
     */
    accept(): string | undefined;
    /**
     * Get current suggestions
     */
    getSuggestions(): PathSuggestion[];
    /**
     * Get selected index
     */
    getSelectedIndex(): number;
    /**
     * Format current state for display
     */
    format(): string;
}
export default PathAutocomplete;
