/**
 * Pure index-filtering + prompt-index formatting helpers.
 *
 * Matching semantics are ported from curator's battle-tested
 * `searchSkillsFromIndex`: case-insensitive substring match on
 * name/displayName/description, optional tag filter on top, scope filter
 * that always admits global skills, and active-only visibility.
 */
import type { SkillDefinition, SkillIndexItem, SkillSearchQuery } from "../types/index.js";
/** Strip instructions from a full definition to form an index entry. */
export declare function toSkillIndexItem(skill: SkillDefinition): SkillIndexItem;
/** Filter index entries by query/tag/scope. Active skills only. */
export declare function filterSkillIndex(items: SkillIndexItem[], query: SkillSearchQuery): SkillIndexItem[];
/**
 * Render the compact skills index injected into the system prompt.
 * Names + descriptions only — instructions are never included; the model
 * loads them via search_skills. Returns null when nothing is visible so
 * callers can skip injection entirely.
 */
export declare function formatSkillsPromptIndex(items: SkillIndexItem[], maxItems: number): string | null;
