import { type Skill } from './skills.js';
/**
 * Bundle version. Bumped whenever resources/ecc/ is refreshed from
 * upstream OR when the seedHooks() set materially changes.
 *
 * History:
 *   '1.0.0' — initial bundle (33 skills, 16 agents, 3 commands, flat rules)
 *   '2.0.0' — refreshed from upstream 2.0.0-rc.1
 *             (228 skills, 60 agents, 75 commands, 19 language rule subdirs;
 *              adds config-protection + simplified GateGuard hooks)
 *   '2.1.0' — adds quality-gate + format-typecheck-hint hooks (M1 leftovers)
 */
export declare const BUNDLE_VERSION = "2.1.0";
export interface EccState {
    installedAt: string;
    version: string;
    counts: {
        skills: number;
        agents: number;
        commands: number;
        rules: number;
        prompts: number;
    };
}
export declare function loadEccState(): EccState | null;
export declare function eccResourcesAvailable(): boolean;
export interface ImportReport {
    skills: number;
    agents: number;
    commands: number;
    rules: number;
    prompts: number;
    errors: string[];
}
export declare function listEccCommands(): string[];
/**
 * Resolve a `/ecc-<name>` command to its prompt body. Frontmatter is stripped;
 * if `allowed_tools` is set, it's preserved as a note at the top.
 */
export declare function getEccCommandPrompt(name: string): string | null;
/**
 * Re-seed ECC hooks against the CURRENT install path. Called on every
 * startup (when ECC is already installed) to self-heal stale absolute
 * paths from a prior install location. Idempotent.
 *
 * Safe to call repeatedly — strips and re-adds the __ecc__-tagged hooks
 * each time. Returns the number of hooks now seeded (0 if ecc-hooks.cjs
 * is missing on this machine, in which case we leave hooks.json alone).
 */
export declare function reseedEccHooks(): number;
export declare function installEcc(opts?: {
    verbose?: boolean;
}): ImportReport;
export declare function printEccStatus(): void;
export declare function printEccSkills(): void;
export declare function printEccAgents(): void;
export declare function printEccCommandList(): void;
/**
 * Match the user's free-form text against ECC skill triggers and return the
 * top-matching skill prompt body, or null if nothing fires. Used to auto-inject
 * skill content into the system prompt — bumps relevance for that turn.
 */
export declare function findEccSkillForQuery(query: string): Skill | null;
/**
 * Same scoring as findEccSkillForQuery but returns the top-K hits.
 * Used by the progressive-disclosure system prompt injection to surface
 * multiple potentially-relevant skill names + descriptions without
 * burning the token budget on full prompt bodies.
 */
export declare function findEccSkillsForQuery(query: string, limit?: number): Skill[];
/**
 * Look up a skill by exact or substring name match. Used by the
 * skill_view tool to expand a Level-0 reference (name only) to the
 * Level-1 full prompt body the model needs to actually apply.
 */
export declare function findEccSkillByName(name: string): Skill | null;
