/**
 * Skillset path utilities, type, parser, and discovery
 *
 * Provides agent-agnostic path helpers, the Skillset type describing a parsed
 * skillset directory, the parseSkillset parser, and listSkillsets for discovery.
 */
import { type NoriJson } from "../norijson/nori.js";
/**
 * Get the Nori directory path
 * Always returns ~/.nori (centralized location)
 *
 * @returns Absolute path to the .nori directory
 */
export declare const getNoriDir: () => string;
/**
 * Get the Nori skillsets directory path
 * This is where all skillset templates are stored
 *
 * @returns Absolute path to the skillsets directory (~/.nori/profiles/)
 */
export declare const getNoriSkillsetsDir: () => string;
/** Manifest file name used to identify valid skillsets */
export declare const MANIFEST_FILE = "nori.json";
/**
 * Represents a parsed skillset directory structure.
 * Content-agnostic: maps to filesystem paths, not file contents.
 */
export type Skillset = {
    /** Skillset name (from nori.json or directory basename) */
    name: string;
    /** Absolute path to the skillset directory */
    dir: string;
    /** Parsed nori.json contents */
    metadata: NoriJson;
    /** Path to skills/ subdirectory, or null if it doesn't exist */
    skillsDir: string | null;
    /** Path to the root config file (e.g. AGENTS.md), or null if it doesn't exist */
    configFilePath: string | null;
    /** Path to slashcommands/ subdirectory, or null if it doesn't exist */
    slashcommandsDir: string | null;
    /** Path to subagents/ subdirectory, or null if it doesn't exist */
    subagentsDir: string | null;
    /** Path to mcp/ subdirectory, or null if it doesn't exist */
    mcpDir: string | null;
};
/**
 * Parse a skillset directory into a Skillset object.
 *
 * Accepts either a skillsetName (resolved relative to ~/.nori/profiles/)
 * or a direct skillsetDir path.
 *
 * @param args - Either { skillsetName } or { skillsetDir }
 * @param args.skillsetName - Name of the skillset to resolve relative to ~/.nori/profiles/
 * @param args.skillsetDir - Direct absolute path to the skillset directory
 *
 * @throws Error if the directory doesn't exist or has no nori.json
 *
 * @returns Parsed Skillset object
 */
export declare const parseSkillset: (args: {
    skillsetName?: string | null;
    skillsetDir?: string | null;
}) => Promise<Skillset>;
/**
 * List installed skillsets from the .nori/profiles/ directory
 *
 * Discovers both flat skillsets (e.g., "senior-swe") and namespaced skillsets
 * (e.g., "myorg/my-skillset"). A directory is considered a valid skillset if it
 * contains a nori.json file.
 *
 * @returns Sorted array of skillset names
 */
export type SkillsetEntry = {
    name: string;
    isLinked: boolean;
};
/**
 * List installed skillsets with metadata (linked status).
 *
 * Discovers both flat skillsets and namespaced skillsets.
 * Reports whether each entry is a symlink (linked) or a real directory.
 *
 * @returns Sorted array of skillset entries with metadata
 */
export declare const listSkillsetsWithMetadata: () => Promise<Array<SkillsetEntry>>;
/**
 * List installed skillsets from the .nori/profiles/ directory
 *
 * Discovers both flat skillsets (e.g., "senior-swe") and namespaced skillsets
 * (e.g., "myorg/my-skillset"). A directory is considered a valid skillset if it
 * contains a nori.json file.
 *
 * @returns Sorted array of skillset names
 */
export declare const listSkillsets: () => Promise<Array<string>>;
//# sourceMappingURL=skillset.d.ts.map