import type { ProjectKnowledge } from './project/core.js';
/** Result of adapting a raw skill template with project-specific context. */
export interface AdaptationResult {
    /** The adapted skill content with all replacements applied. */
    adapted: string;
    /** Placeholder keys that were successfully replaced. */
    replaced: string[];
    /** Placeholder keys that were unknown and left as-is. */
    unknown: string[];
}
/** Defines how a single placeholder in a skill template maps to ProjectKnowledge. */
export interface PlaceholderDefinition {
    /** The placeholder string, e.g. '{typecheck_cmd}' */
    placeholder: string;
    /** Path in ProjectKnowledge to resolve the value. Null when derived (e.g. test_runner). */
    knowledgePath: keyof ProjectKnowledge | null;
    /** Fallback string when knowledge field is null/undefined or knowledgePath is null. */
    fallback: string;
    /** Optional derive function — overrides knowledgePath. Returns string or null. */
    derive?: (k: ProjectKnowledge) => string | null;
}
/** Rule for rewriting package manager or test runner commands in skill content. */
export interface RewriteRule {
    /** Package manager or runner to replace FROM (e.g. 'npm', 'jest') */
    from: string;
    /** Package manager or runner to replace TO (e.g. 'pnpm', 'vitest') */
    to: string;
}
//# sourceMappingURL=skill-adapter.d.ts.map