/**
 * src/agent/skills.ts
 * نظام تحميل المهارات — Skill loader for tenant workspace SKILLS/ folder
 */
export interface Skill {
    name: string;
    whenToUse: string;
    instructions: string;
    examples: string[];
    keywords: string[];
    priority: number;
    raw: string;
}
export interface SkillMatch {
    skill: Skill;
    score: number;
    reason: string;
}
export declare function parseSkillFile(content: string): Skill;
/** Force the next loadSkills() call to re-read disk. Call this whenever
 * a skill file is created/updated/deleted. */
export declare function invalidateSkillsCache(reason?: string): void;
export declare function loadSkills(tenantId: string): Promise<Skill[]>;
/**
 * Score skills by token overlap of (name + whenToUse + keywords) against
 * (message + intent + recent context). Returns ALL skills above threshold,
 * ranked, capped at `limit`. Replaces the old single-best matcher — the
 * brain is smart enough to pick from a shortlist; forcing 1-of-220 was the
 * "skills feel fake" bug. Multi-skill mode lets the model see e.g.
 * `follow-up`, `qualify-lead`, AND `customer-segmentation` simultaneously.
 *
 * No keyword shortlist — every token contributes via inverse-rarity weighting
 * so distinctive words like "زاتكا" beat noise like "اريد".
 */
export declare function matchSkills(skills: Skill[], intent: string, message: string, options?: {
    limit?: number;
    minScore?: number;
}): SkillMatch[];
/** Back-compat shim for callers that want a single best match. */
export declare function matchSkill(skills: Skill[], intent: string, message: string): SkillMatch | null;
export declare function formatSkillCatalog(matches: SkillMatch[], options?: {
    fullBodyTopK?: number;
}): string;
/**
 * Single-skill format (legacy, kept for back-compat). New code paths use
 * `formatSkillCatalog` to inject a shortlist instead. The forced "🧰 سأستخدم
 * مهارة X للرد" prefix that this function used to add is gone — it made the
 * agent sound like a chatbot narrating its own moves. Smart agents act
 * silently; skill names surface in the dashboard's tool feed instead.
 */
export declare function formatSkillPrompt(match: SkillMatch): string;
//# sourceMappingURL=skills.d.ts.map