/**
 * lifecycle.js — 生命周期操作类工具 (10)
 *
 * 16.  submit_knowledge     提交候选项
 * 17.  approve_candidate    批准候选
 * 18.  reject_candidate     驳回候选
 * 19.  publish_recipe       发布 Recipe
 * 20.  deprecate_recipe     弃用 Recipe
 * 21.  update_recipe        更新 Recipe
 * 22.  record_usage         记录使用
 * 23.  quality_score        质量评分
 * 24.  validate_candidate   候选校验
 * 25.  get_feedback_stats   反馈统计
 */
import { type ToolHandlerContext } from './_shared.js';
export interface SubmitKnowledgeParams {
    content?: {
        markdown?: string;
        pattern?: string;
        rationale?: string;
        [key: string]: unknown;
    };
    title?: string;
    description?: string;
    tags?: string[];
    trigger?: string;
    kind?: string;
    topicHint?: string;
    whenClause?: string;
    doClause?: string;
    dontClause?: string;
    coreCode?: string;
    reasoning?: {
        whyStandard?: string;
        sources?: string[];
        confidence?: number;
    };
    scope?: string;
    complexity?: string;
    headers?: string[];
    knowledgeType?: string;
    usageGuide?: string;
    sourceFile?: string;
    _category?: string;
    /** 被替代的旧 Recipe ID（进化架构入口） */
    supersedes?: string;
    [key: string]: unknown;
}
export declare const submitCandidate: {
    name: string;
    description: string;
    parameters: {
        type: string;
        properties: {
            content: {
                type: string;
                description: string;
            };
            title: {
                type: string;
                description: string;
            };
            description: {
                type: string;
                description: string;
            };
            tags: {
                type: string;
                items: {
                    type: string;
                };
                description: string;
            };
            trigger: {
                type: string;
                description: string;
            };
            kind: {
                type: string;
                enum: string[];
                description: string;
            };
            topicHint: {
                type: string;
                enum: string[];
                description: string;
            };
            whenClause: {
                type: string;
                description: string;
            };
            doClause: {
                type: string;
                description: string;
            };
            dontClause: {
                type: string;
                description: string;
            };
            coreCode: {
                type: string;
                description: string;
            };
            reasoning: {
                type: string;
                description: string;
            };
            scope: {
                type: string;
                enum: string[];
                description: string;
            };
            complexity: {
                type: string;
                enum: string[];
                description: string;
            };
            headers: {
                type: string;
                items: {
                    type: string;
                };
                description: string;
            };
            knowledgeType: {
                type: string;
                description: string;
            };
            usageGuide: {
                type: string;
                description: string;
            };
            sourceFile: {
                type: string;
                description: string;
            };
            supersedes: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
    handler: (params: SubmitKnowledgeParams, ctx: ToolHandlerContext) => Promise<Record<string, unknown>>;
};
export declare const approveCandidate: {
    name: string;
    description: string;
    parameters: {
        type: string;
        properties: {
            candidateId: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
    handler: (params: {
        candidateId: string;
    }, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const rejectCandidate: {
    name: string;
    description: string;
    parameters: {
        type: string;
        properties: {
            candidateId: {
                type: string;
                description: string;
            };
            reason: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
    handler: (params: {
        candidateId: string;
        reason: string;
    }, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const publishRecipe: {
    name: string;
    description: string;
    parameters: {
        type: string;
        properties: {
            recipeId: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
    handler: (params: {
        recipeId: string;
    }, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const deprecateRecipe: {
    name: string;
    description: string;
    parameters: {
        type: string;
        properties: {
            recipeId: {
                type: string;
                description: string;
            };
            reason: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
    handler: (params: {
        recipeId: string;
        reason: string;
    }, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const updateRecipe: {
    name: string;
    description: string;
    parameters: {
        type: string;
        properties: {
            recipeId: {
                type: string;
                description: string;
            };
            updates: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
    handler: (params: {
        recipeId: string;
        updates: Record<string, unknown>;
    }, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const recordUsage: {
    name: string;
    description: string;
    parameters: {
        type: string;
        properties: {
            recipeId: {
                type: string;
                description: string;
            };
            type: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
    handler: (params: {
        recipeId: string;
        type?: string;
    }, ctx: ToolHandlerContext) => Promise<{
        success: boolean;
        recipeId: string;
        type: string;
    }>;
};
export declare const qualityScore: {
    name: string;
    description: string;
    parameters: {
        type: string;
        properties: {
            recipeId: {
                type: string;
                description: string;
            };
            recipe: {
                type: string;
                description: string;
            };
        };
    };
    handler: (params: {
        recipeId?: string;
        recipe?: Record<string, unknown>;
    }, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const validateCandidate: {
    name: string;
    description: string;
    parameters: {
        type: string;
        properties: {
            candidate: {
                type: string;
                description: string;
            };
        };
        required: string[];
    };
    handler: (params: {
        candidate: Record<string, unknown>;
    }, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const getFeedbackStats: {
    name: string;
    description: string;
    parameters: {
        type: string;
        properties: {
            recipeId: {
                type: string;
                description: string;
            };
            topN: {
                type: string;
                description: string;
            };
        };
    };
    handler: (params: {
        recipeId?: string;
        topN?: number;
    }, ctx: ToolHandlerContext) => Promise<Record<string, unknown>>;
};
