import type { Migration, MigrationContext, MigrationResult } from "./migration.interface.js";
/**
 * Migration: vendor Lisa's oxlint configs into the host repository and point
 * `.oxlintrc.json` at them, so linting works in a checkout without an install.
 *
 * oxlint resolves every `extends` entry as a plain path relative to the config
 * file that declares it — its schema says so, and it performs no Node-style
 * upward module resolution. A `./node_modules/@codyswann/lisa/oxlint/*.json`
 * entry therefore dies in any checkout lacking its own `node_modules`, most
 * commonly a fresh `git worktree`. Since `.lintstagedrc.json` runs
 * `oxlint --fix` from the husky pre-commit hook, that blocked every commit in
 * such a worktree, with the failure surfacing as a downstream prettier kill
 * rather than as the config error it was (#2465).
 *
 * Vendoring is what makes it worktree-proof: git checks tracked files into
 * every worktree, whereas `node_modules` is untracked by definition. The two
 * layers are preserved — Lisa owns the vendored base, the host still owns
 * `.oxlintrc.json` — so projects keep overriding rules exactly as before.
 *
 * Pruning the legacy entry is not cosmetic. The `merge` strategy unions arrays
 * and can never drop an element, so an upgraded project would otherwise carry
 * the new path *and* the old one; oxlint hard-fails on any unresolvable entry,
 * so changing the templates alone would fix nothing for existing hosts.
 */
export declare class EnsureOxlintBaseConfigsMigration implements Migration {
    readonly name = "ensure-oxlint-base-configs";
    readonly description = "Vendor Lisa oxlint configs into .lisa/lisa-oxlint/ so linting works without node_modules";
    /**
     * The migration applies when the vendored configs are missing or stale, or
     * when `.oxlintrc.json` still carries a legacy package-relative entry.
     * @param ctx - Migration context
     * @returns True when there is work to do
     */
    applies(ctx: MigrationContext): Promise<boolean>;
    /**
     * Write the vendored configs and normalize the host `extends` list.
     * @param ctx - Migration context
     * @returns Result describing the action taken
     */
    apply(ctx: MigrationContext): Promise<MigrationResult>;
}
//# sourceMappingURL=ensure-oxlint-base-configs.d.ts.map