/**
 * HermesProfileManager — Thin wrapper around `hermes profile` CLI.
 *
 * ╔════════════════════════════════════════════════════════════════════════╗
 * ║  PURPOSE                                                                  ║
 * ║                                                                          ║
 * ║  Replaces the old dual-layout (HERMES_HOME/agents/<name>/settings.json   ║
 * ║  vs .claude/settings_<name>.json) with the native Hermes profile system. ║
 * ║                                                                          ║
 * ║  Each Overmind Hermes agent = one Hermes profile:                        ║
 * ║    ~/.hermes/profiles/<name>/                                            ║
 * ║      ├── config.yaml   (provider, model, mcp_servers)                    ║
 * ║      ├── .env          (credentials)                                     ║
 * ║      ├── SOUL.md       (system prompt)                                   ║
 * ║      ├── memories/     (state.db — isolated)                             ║
 * ║      ├── sessions/     (conversation history)                            ║
 * ║      └── skills/       (procedural memory)                               ║
 * ║                                                                          ║
 * ║  All operations go through `hermes profile` CLI — no manual file         ║
 * ║  management, no HERMES_HOME guessing.                                    ║
 * ╚════════════════════════════════════════════════════════════════════════╝
 */
export interface HermesProfileInfo {
    name: string;
    model: string;
    gateway: string;
    skills: number;
    active: boolean;
}
export interface CreateProfileOptions {
    name: string;
    prompt: string;
    model: string;
    provider?: string;
    credentials: Record<string, string>;
    mcpServers?: string[];
    description?: string;
}
export declare class HermesProfileManager {
    /**
     * Check if a Hermes profile exists.
     */
    static exists(name: string): boolean;
    /**
     * List all Hermes profiles.
     */
    static list(): Promise<HermesProfileInfo[]>;
    /**
     * Parse `hermes profile list` output into structured data.
     *
     * Output format:
     *   Profile          Model                        Gateway      Alias
     *   ───────────────    ───────────────────────────    ───────────    ───────────
     *   ◆default         MiniMax-M3                   stopped      —
     *    testwrapper     —                            stopped      —
     */
    static parseProfileList(rawOutput: string): HermesProfileInfo[];
    /**
     * Create a new Hermes profile that uses the NATIVE Hermes credential pool.
     *
     * Steps:
     *   1. Validate provider is healthy in the Hermes pool (round_robin rotation)
     *   2. hermes profile create <name> --no-alias --description "<desc>"
     *   3. hermes -p <name> config set model.provider <provider>
     *   4. hermes -p <name> config set model.model <model>
     *   5. Write SOUL.md with system prompt
     *   6. Optionally set mcp_servers in config.yaml
     *   7. Generate profile.yaml/workspace.yaml/README
     *
     * NOTE: We do NOT write credentials to the profile's .env anymore — Hermes
     * resolves them from the global pool via `hermes auth list`. The profile's
     * .env stays empty (just the placeholder comment Hermes writes by default).
     *
     * If `opts.credentials` is provided, they are added to the GLOBAL POOL via
     * `hermes auth add` (deduped by label) rather than written to the profile.
     */
    static create(opts: CreateProfileOptions): Promise<{
        profilePath: string;
        soulPath: string;
        provider: string;
    }>;
    /**
     * Delete a Hermes profile permanently.
     */
    static delete(name: string): Promise<void>;
    /**
     * Get the filesystem path for a profile.
     *
     * Queries `hermes profile show <name>` to get the real path from Hermes itself.
     * This is the ONLY reliable way — Hermes controls where profiles live, and the
     * location depends on HERMES_HOME (Windows: AppData\Local\hermes, Linux: ~/.hermes).
     *
     * Falls back to the canonical layout under the shared Hermes home if the CLI
     * call fails (e.g. profile doesn't exist yet).
     */
    static getProfilePath(name: string): Promise<string | null>;
    /**
     * Set MCP servers in a profile's config.yaml.
     *
     * Reads the workspace .mcp.json to get the actual server configs (URL, command, etc.)
     * and writes them as proper YAML entries in the profile's config.yaml.
     */
    static setMcpServers(profileName: string, servers: string[], profilePath: string): Promise<void>;
    /** Write profile.yaml (kanban description — OBLIGATOIRE) */
    private static writeProfileYaml;
    /** Write workspace.yaml (kind: scratch|persistent|shared) */
    private static writeWorkspaceYaml;
    /** Write README.md (role + contacts) */
    private static writeReadme;
    /**
     * Update specific fields of an existing profile.
     */
    static update(name: string, updates: {
        model?: string;
        provider?: string;
        credentials?: Record<string, string>;
        prompt?: string;
        mcpServers?: string[];
    }): Promise<void>;
}
//# sourceMappingURL=HermesProfileManager.d.ts.map