/** Subdirectory inside `.codex/agents/` where Lisa-owned agents live */
export declare const LISA_AGENTS_SUBDIR: string;
/** Subdirectory inside `.codex/agents/` where host overrides live */
export declare const HOST_OVERRIDES_SUBDIR: string;
/** Discovered Lisa agent source */
export interface AgentSource {
    /** Stable identifier matching the source filename without extension */
    readonly id: string;
    /** Absolute path to the source `.md` file */
    readonly sourcePath: string;
    /** Plugin name the agent ships from (for diagnostics) */
    readonly pluginName: string;
}
/** Result of installing one agent */
export interface InstalledAgent {
    /** Agent id (filename basename) */
    readonly id: string;
    /** Path written, relative to the destination project's `.codex/` directory */
    readonly relativePath: string;
    /** Whether a host override file was applied */
    readonly overrideApplied: boolean;
}
/** Aggregated result of an install pass */
export interface AgentInstallResult {
    readonly installed: readonly InstalledAgent[];
    /** Stale agent files deleted from `.codex/agents/lisa/` (relative to `.codex/`) */
    readonly deleted: readonly string[];
    /** Files written, relative to `.codex/`. Used to update the manifest. */
    readonly managedFiles: readonly string[];
}
/**
 * Discover every agent shipped by every Lisa plugin under `lisaDir`.
 *
 * Looks at `<lisaDir>/plugins/<plugin>/agents/*.md`. Skips the
 * `plugins/src/` source tree (which is the build input — we want the built
 * output). De-duplicates by agent id with last-wins semantics: the base `lisa`
 * plugin is always processed first, then remaining plugins in alphabetical
 * order, so any stack-specific plugin (e.g. `lisa-rails`) or third-party
 * plugin overrides the base regardless of how the name sorts.
 * @param lisaDir - Absolute path to the Lisa repo root
 * @param pluginFilter - Optional predicate to restrict which plugin directories
 *   are walked (e.g. canonical-only for the OpenCode native agent surface, which
 *   must skip the `*-copilot` variants whose `.agent.md` naming would otherwise
 *   ship duplicate agents). Defaults to including every plugin.
 * @returns De-duplicated agent sources, sorted by id
 */
export declare function discoverLisaAgents(lisaDir: string, pluginFilter?: (pluginName: string) => boolean): Promise<readonly AgentSource[]>;
/**
 * Install all discovered agents into `<destDir>/.codex/agents/lisa/`.
 *
 * 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 `.codex/`); 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>;
//# sourceMappingURL=agent-installer.d.ts.map