/** A named agent archetype loaded from a .goodvibes/agents/*.md file
 *  or from built-in templates. */
export interface AgentArchetype {
    /** Archetype identifier (filename without extension, or template key). */
    name: string;
    /** Human-readable description. */
    description: string;
    /** Tool names the agent has access to. */
    tools: string[];
    /** Model override (optional). */
    model?: string;
    /** Provider override (optional). */
    provider?: string;
    /** System prompt injected at agent start (optional). */
    systemPrompt?: string;
    /** True if loaded from a markdown file, false if built-in. */
    isCustom: boolean;
    /** Where this archetype came from. */
    origin: 'builtin' | 'local-markdown';
    /** Source path when loaded from a markdown file. */
    sourcePath?: string;
    /** Validation or schema issues discovered while loading. */
    validationIssues?: readonly string[];
    /** Brief preview of the archetype body. */
    preview?: string;
    /** Lazy @ references discovered in the body. */
    includes?: readonly string[];
    /** Markdown headings discovered in the body. */
    sections?: readonly string[];
}
/** Loads and caches agent archetypes from .goodvibes/agents/*.md files.
 *
 * Progressive loading:
 *  - `listArchetypes()` returns all known archetypes (frontmatter only);
 *    full body (system_prompt) is populated on first call to `loadArchetype()`.
 *  - Falls back to built-in templates when no .md file is found.
 */
export declare class ArchetypeLoader {
    /** Map from archetype name -> AgentArchetype (may be partially loaded) */
    private cache;
    /** Map from archetype name -> raw markdown body (lazy) */
    private bodyCache;
    /** Whether the directory scan has been run */
    private scanned;
    /** Directory to scan for .md files */
    private dir;
    constructor(dir?: string);
    /** Scan the agents directory and populate cache with frontmatter-only entries.
   *  Called automatically on first access. */
    private scan;
    /** Load a named archetype with full content (including system prompt).
     *  Returns null if not found in files or built-ins. */
    loadArchetype(name: string): AgentArchetype | null;
    /** List all known archetypes (frontmatter only, no body loading). */
    listArchetypes(): AgentArchetype[];
    /** Merge archetype config with runtime overrides.
     *  Override properties take precedence over archetype defaults.
     *  Returns null if the named archetype is not found. */
    mergeWithOverrides(name: string, overrides: {
        model?: string;
        provider?: string;
        tools?: string[];
    }): AgentArchetype | null;
    /** Clear all cached archetypes and force re-scan on next access.
     *  Primarily for testing. */
    clear(): void;
}
//# sourceMappingURL=archetypes.d.ts.map