import { z } from "zod";
import type { Skill } from "./skills.generated.js";
import type { SkillsRegistry, SkillOrigin } from "./index.js";
export declare const SKILLS_EXTENSION_ID = "io.modelcontextprotocol/skills";
/** Spread into `capabilities.extensions`. No `directoryRead`: every skill is one file. */
export declare const SKILLS_EXTENSION_CAPABILITY: {
    "io.modelcontextprotocol/skills": {};
};
export interface SkillFrontmatter {
    name: string;
    description: string;
    compatibility: string;
    metadata: Record<string, string>;
}
export interface SkillResourceRef {
    uri: string;
    digest: string;
    size: number;
}
export interface SkillEntry {
    uri: string;
    frontmatter: SkillFrontmatter;
    resources: SkillResourceRef[];
}
export declare class SkillEntryNotFoundError extends Error {
    readonly uri: string;
    constructor(uri: string);
}
export declare function skillUri(name: string): string;
/** Skill name from a `skill://withpica/<name>/SKILL.md` URI, or null. */
export declare function skillNameFromUri(uri: string): string | null;
export declare function skillFrontmatter(skill: Skill, origin: SkillOrigin): SkillFrontmatter;
/** The exact text served by `resources/read` for this skill's SKILL.md. */
export declare function renderSkillMd(skill: Skill, origin: SkillOrigin): string;
/**
 * Entries for `skills/list`. A skill whose name or description breaks the
 * Agent Skills rules (custom-skill names allow `--` and a trailing hyphen —
 * lib/services/custom-skills.ts NAME_RE) is left out of the
 * listing — SEP-2640 permits a partial listing — but stays gettable by URI.
 */
export declare function listSkillEntries(registry: SkillsRegistry): SkillEntry[];
/** Entry for `skills/get`. Throws SkillEntryNotFoundError (→ -32602). */
export declare function getSkillEntry(registry: SkillsRegistry, uri: string): SkillEntry;
export declare const SkillsListRequestSchema: z.ZodObject<{
    method: z.ZodLiteral<"skills/list">;
    params: z.ZodOptional<z.ZodObject<{
        cursor: z.ZodOptional<z.ZodString>;
    }, z.core.$loose>>;
}, z.core.$strip>;
export declare const SkillsGetRequestSchema: z.ZodObject<{
    method: z.ZodLiteral<"skills/get">;
    params: z.ZodOptional<z.ZodObject<{
        uri: z.ZodUnknown;
    }, z.core.$loose>>;
}, z.core.$strip>;
/** `skills/list` result. One page: PICA's catalog is small and fixed per caller. */
export declare function skillsListResult(entries: SkillEntry[]): {
    resultType: "complete";
    skills: SkillEntry[];
};
/**
 * `skills/get` result. A missing, unknown or malformed URI is -32602 (Invalid
 * params), the code SEP-2640 requires; pinned by sep2640-protocol.test.ts.
 * (PICA's resources/read still answers -32603 for an unknown URI: ResourceError
 * carries a string code, which the SDK maps to InternalError.)
 */
export declare function skillsGetResult(uri: unknown, get: (uri: string) => SkillEntry): {
    resultType: "complete";
    skill: SkillEntry;
};
//# sourceMappingURL=sep2640.d.ts.map