import type { Migration, MigrationContext, MigrationResult } from "./migration.interface.js";
/**
 * Migration: bind the project's ACTUAL learnings ledger to the union merge
 * driver in `.gitattributes`.
 *
 * The copy-contents template ships the default `.lisa/PROJECT_LEARNINGS.md`
 * path, which is correct for most projects but silently wrong for any project
 * that relocates its ledger via the validated `learnings.file` override in
 * `.lisa.config.json`. A `.gitattributes` pointing at a path the project does
 * not use leaves the ledger on git's default text merge — the exact corruption
 * this campaign exists to remove — with nothing to indicate it.
 *
 * Running after the copy strategies, this resolves the ledger path through the
 * executable config resolver (never hardcoded) and rewrites the Lisa-managed
 * block. It uses the same guardrail-marker merge the template does, so every
 * host-authored attribute (LFS, linguist, eol) outside the block is preserved,
 * and it converges to the same content as the template whenever the project
 * uses the default path.
 */
export declare class EnsureLearningsGitattributesMigration implements Migration {
    readonly name = "ensure-learnings-gitattributes";
    readonly description = "Bind the project's configured learnings ledger path to the union merge driver in .gitattributes";
    /**
     * Applies whenever the managed block does not already match the resolved
     * ledger path.
     * @param ctx - Migration context
     * @returns True when there is work to do
     */
    applies(ctx: MigrationContext): Promise<boolean>;
    /**
     * Rewrite the Lisa-managed `.gitattributes` block for the resolved ledger.
     * @param ctx - Migration context
     * @returns Result describing the action taken
     */
    apply(ctx: MigrationContext): Promise<MigrationResult>;
    /**
     * Compute the current and intended `.gitattributes` contents.
     * @param ctx - Migration context
     * @returns Existing content and the content this migration would write
     */
    private resolveContent;
}
//# sourceMappingURL=ensure-learnings-gitattributes.d.ts.map