import { type AgentSource } from "../codex/agent-installer.js";
export { type AgentSource, discoverLisaAgents, } from "../codex/agent-installer.js";
/** Subdirectory inside `.opencode/` where Lisa-owned agents live */
export declare const LISA_AGENTS_SUBDIR = "agents";
/**
 * Filename prefix marking an agent file as Lisa-owned. OpenCode reads
 * `.opencode/agents/` flat, so the prefix (not a subdirectory) is the ownership
 * boundary used for collision avoidance and stale cleanup.
 */
export declare const LISA_AGENT_FILE_PREFIX = "lisa-";
/** Result of installing one agent */
export interface InstalledAgent {
    /** Agent id (source filename basename, without the `lisa-` prefix) */
    readonly id: string;
    /** Path written, relative to the destination project's `.opencode/` directory */
    readonly relativePath: string;
}
/** Aggregated result of an install pass */
export interface AgentInstallResult {
    readonly installed: readonly InstalledAgent[];
    /** Stale agent files deleted from `.opencode/agents/` (relative to `.opencode/`) */
    readonly deleted: readonly string[];
    /** Files written, relative to `.opencode/`. Used to update the manifest. */
    readonly managedFiles: readonly string[];
}
/**
 * Install all discovered agents into `<destDir>/.opencode/agents/`.
 *
 * Returns a result describing what was written and what stale files were
 * deleted, so the caller can update the Lisa-managed manifest.
 * @param sources - Agent sources from discoverLisaAgents
 * @param destDir - Absolute path to the destination project root
 * @param previousManagedFiles - Files Lisa managed on the previous run
 *   (relative to `.opencode/`); used to detect stale agents to delete
 * @returns Result describing installed/deleted/managedFiles
 */
export declare function installAgents(sources: readonly AgentSource[], destDir: string, previousManagedFiles: readonly string[]): Promise<AgentInstallResult>;
/**
 * Convenience one-shot: discover Lisa agents from `lisaDir` and install them.
 *
 * Discovery is restricted to canonical plugins — the per-harness fanout variants
 * (`*-agy`, `*-copilot`, `*-cursor`) are skipped. The copilot variants rename
 * agents to `*.agent.md`, which would otherwise slip past id-dedup and ship a
 * duplicate `lisa-<name>.agent` for every agent; the cursor/agy variants are
 * just reformatted copies of the base agents.
 * @param lisaDir - Absolute path to the Lisa repo / installed package
 * @param destDir - Absolute path to the destination project root
 * @param previousManagedFiles - Files Lisa managed on the previous run
 * @returns Result describing installed/deleted/managedFiles
 */
export declare function discoverAndInstallAgents(lisaDir: string, destDir: string, previousManagedFiles: readonly string[]): Promise<AgentInstallResult>;
//# sourceMappingURL=agent-installer.d.ts.map