import type { SecretInput } from "./types.secrets.js";
export type SkillConfig = {
    enabled?: boolean;
    apiKey?: SecretInput;
    env?: Record<string, string>;
    config?: Record<string, unknown>;
};
export type SkillsLoadConfig = {
    /**
     * Additional skill folders to scan (lowest precedence).
     * Each directory should contain skill subfolders with `SKILL.md`.
     */
    extraDirs?: string[];
    /** Watch skill folders for changes and refresh the skills snapshot. */
    watch?: boolean;
    /** Debounce for the skills watcher (ms). */
    watchDebounceMs?: number;
};
export type SkillsInstallConfig = {
    preferBrew?: boolean;
    nodeManager?: "npm" | "pnpm" | "yarn" | "bun";
};
export type SkillsLimitsConfig = {
    /** Max number of immediate child directories to consider under a skills root before treating it as suspicious. */
    maxCandidatesPerRoot?: number;
    /** Max number of skills to load per skills source (bundled/managed/workspace/extra). */
    maxSkillsLoadedPerSource?: number;
    /** Max number of skills to include in the model-facing skills prompt. */
    maxSkillsInPrompt?: number;
    /** Max characters for the model-facing skills prompt block (approx). */
    maxSkillsPromptChars?: number;
    /** Max size (bytes) allowed for a SKILL.md file to be considered. */
    maxSkillFileBytes?: number;
};
export type SkillsMarketplaceConfig = {
    /** Registries trusted for installed skills that request wallet actions. Defaults to https://clawhub.com. */
    allowRegistries?: string[];
};
export type SkillsConfig = {
    /** Optional bundled-skill allowlist (only affects bundled skills). */
    allowBundled?: string[];
    load?: SkillsLoadConfig;
    install?: SkillsInstallConfig;
    marketplace?: SkillsMarketplaceConfig;
    limits?: SkillsLimitsConfig;
    entries?: Record<string, SkillConfig>;
};
