import type { LoadedCustomTool } from '../types/custom-tools.js';
export interface CustomToolLoadError {
    file: string;
    error: string;
}
export interface CustomToolLoadResult {
    tools: LoadedCustomTool[];
    errors: CustomToolLoadError[];
}
/**
 * Scans `.nanocoder/tools/` (project) and the personal tools dir for `.md`
 * custom-tool files. Personal first, project second so project files shadow
 * personal ones by `name`. Duplicate names within the same directory: the
 * first wins, the second is logged as an error.
 *
 * `.ts`/`.js` files are deliberately ignored — Phase 2 will pick them up.
 */
export declare class CustomToolLoader {
    private projectRoot;
    private projectToolsDir;
    private personalToolsDir;
    private errors;
    constructor(projectRoot?: string);
    getProjectToolsDirectory(): string;
    getPersonalToolsDirectory(): string;
    getProjectRoot(): string;
    hasCustomTools(): boolean;
    getErrors(): CustomToolLoadError[];
    /**
     * Discover and parse all custom tools. Project entries override personal
     * ones by name. Returns the merged set plus any per-file errors that
     * occurred.
     */
    load(): CustomToolLoadResult;
    private scanDirectory;
}
//# sourceMappingURL=loader.d.ts.map