import type { Message, Skill } from "./contracts.js"; export type SkillsDisclosure = "progressive" | "eager"; export declare const EMPTY_SKILL_DESCRIPTION: "(no description)"; export declare const DEFAULT_MAX_SKILL_CATALOG_ENTRIES = 64; export declare const HARD_MAX_SKILL_CATALOG_ENTRIES = 256; export declare const DEFAULT_MAX_SKILL_DESCRIPTION_BYTES = 512; export declare const HARD_MAX_SKILL_DESCRIPTION_BYTES = 4096; export declare const DEFAULT_MAX_SKILL_INSTRUCTION_BYTES = 32768; export declare const HARD_MAX_SKILL_INSTRUCTION_BYTES = 262144; export declare const SKILL_DISCLOSURE_ERROR_CODE: "skill_disclosure_exceeded"; export declare class SkillDisclosureError extends Error { readonly code: "skill_disclosure_exceeded"; constructor(message: string); } export declare function isSkillDisclosureError(error: unknown): error is SkillDisclosureError; export interface LoadedSkillSet { has(name: string): boolean; add(name: string): void; list(): readonly string[]; clear(): void; } export declare function createLoadedSkillSet(): LoadedSkillSet; export interface SkillRenderContext { readonly disclosure?: SkillsDisclosure; readonly loaded?: LoadedSkillSet; /** Budget demotion: render catalog-only even when eager/loaded. */ readonly demotedBodies?: ReadonlySet; } export declare function resolveSkillsDisclosure(run?: SkillsDisclosure, agent?: SkillsDisclosure): SkillsDisclosure; export declare function capSkillCatalog(skills: readonly Skill[]): readonly Skill[]; /** Skills that should appear in prompt assembly for the given disclosure mode. */ export declare function selectSkillsForPrompt(skills: readonly Skill[], context?: SkillRenderContext): readonly Skill[]; export declare function skillHasRenderableBody(skill: Skill, context?: SkillRenderContext): boolean; export declare function skillPromptText(skill: Skill, context?: SkillRenderContext): string | undefined; export declare function skillMessages(skills: readonly Skill[] | undefined, context?: SkillRenderContext): Message[];