/** Pure ownership decision shared by Lisa apply and deterministic health. */
import type { CopyStrategy } from "./config.js";
/** Inputs required to route one template candidate. */
export interface TemplateOwnershipInput {
    readonly relativePath: string;
    readonly strategy: CopyStrategy;
    readonly currentType: string;
    readonly orderedTypes: readonly string[];
    readonly ignored: boolean;
    readonly pendingDeletion: boolean;
    readonly projectLearningsPath: string | undefined;
    readonly suppressLearningsSeed: boolean;
    readonly createOnlyOwner: string | undefined;
    readonly copyOverwriteOwner: string | undefined;
}
/** Stable reason why apply and health omit a template candidate. */
export type TemplateSkipReason = "ignored" | "suppressed-learnings-seed" | "pending-deletion" | "project-learnings-owned" | "create-only-override" | "create-only-cross-owner" | "copy-overwrite-override";
/** Pure routing decision for one template candidate. */
export type TemplateOwnershipDecision = {
    readonly process: true;
} | {
    readonly process: false;
    readonly reason: TemplateSkipReason;
    readonly owner?: string;
};
/**
 * Apply Lisa's exact ignore, deletion, learnings, and ownership precedence.
 * @param input - Candidate plus precomputed project ownership state
 * @returns Whether the candidate is applicable and, when omitted, why
 */
export declare function decideTemplateOwnership(input: TemplateOwnershipInput): TemplateOwnershipDecision;
/**
 * Render one stable human-readable skip reason.
 * @param decision - Skip decision
 * @returns Stable operator-facing reason
 */
export declare function templateSkipDescription(decision: Exclude<TemplateOwnershipDecision, {
    readonly process: true;
}>): string;
/**
 * Parse one trusted deletions manifest using Lisa's paths-minus-keep contract.
 * @param candidate - Parsed deletions.json value
 * @returns Paths that remain pending deletion
 */
export declare function pendingDeletionPaths(candidate: unknown): readonly string[];
//# sourceMappingURL=template-ownership.d.ts.map