import { type LisaCommandSource } from "../core/lisa-skill-sources.js";
export { type LisaCommandSource, discoverLisaCommands, } from "../core/lisa-skill-sources.js";
/** Subdirectory inside `.opencode/` where Lisa-owned commands live */
export declare const LISA_COMMANDS_SUBDIR = "commands";
/**
 * Filename prefix marking a command file as Lisa-owned. Native OpenCode command
 * names use Lisa's user-facing slash-command namespace (`/lisa:*`).
 */
export declare const LISA_COMMAND_FILE_PREFIX = "lisa:";
/** Result of installing one command */
export interface InstalledCommand {
    /** Command name (the `lisa:` prefixed, colon-scoped display name) */
    readonly name: string;
    /** Path written, relative to the destination project's `.opencode/` directory */
    readonly relativePath: string;
}
/** Aggregated result of an install pass */
export interface CommandInstallResult {
    readonly installed: readonly InstalledCommand[];
    /** Stale command files deleted from `.opencode/commands/` (relative to `.opencode/`) */
    readonly deleted: readonly string[];
    /** Files written, relative to `.opencode/`. Used to update the manifest. */
    readonly managedFiles: readonly string[];
}
/**
 * Install all discovered commands into `<destDir>/.opencode/commands/`.
 * @param sources - Command sources from discoverLisaCommands
 * @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 commands to delete
 * @returns Result describing installed/deleted/managedFiles
 */
export declare function installCommands(sources: readonly LisaCommandSource[], destDir: string, previousManagedFiles: readonly string[]): Promise<CommandInstallResult>;
/**
 * Convenience one-shot: discover Lisa commands from `lisaDir` and install them.
 *
 * Discovery is restricted to canonical plugins — the per-harness fanout variants
 * (`*-agy`, `*-copilot`, `*-cursor`) are skipped so a reformatted variant copy
 * of a command body never wins the last-wins dedup over the canonical source.
 * @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 discoverAndInstallCommands(lisaDir: string, destDir: string, previousManagedFiles: readonly string[]): Promise<CommandInstallResult>;
//# sourceMappingURL=command-installer.d.ts.map