import { type Profile } from '../profiles/index.js'; import type { SkillReference } from './skill-generator.js'; /** * Generates the slim root `CLAUDE.md` that uses `@` imports to load per-profile * rule files from `.claude/rules/`. Claude Code reads all `@`-imported files at * conversation start, keeping the root file short and each profile file focused. * * `alwaysLoadIds` is the set of profile ids that landed in `.claude/rules/` (auto-loaded). The * caller (`setupClaude`) computes it by token budget so CLAUDE.md's `@import`s match the files * actually written there; the rest are referenced by `.setup-agents/rules/` path (on-demand, * read on delegation — GH-373). When omitted, the budget split is computed here so standalone * generator callers stay consistent with setup. */ export declare function generateClaudeMd(profiles: Profile[], version: string, alwaysLoadIds?: ReadonlySet): string; /** Generates the minimal activation block appended to an existing `CLAUDE.md`. */ export declare function generateClaudeActivationBlock(version: string): string; /** Generates the minimal activation block appended to an existing `AGENTS.md` (Codex). */ export declare function generateCodexActivationBlock(version: string): string; /** Applies (or updates) the activation block in an existing file. Returns the new content. */ export declare function applyActivationBlock(existing: string, version: string): string; /** Generates per-profile rule file content for `.claude/rules/.md`. */ export declare function generateClaudeProfileRule(profile: Profile, version: string): string; /** * Generates a `.claude/agents/.md` subagent stub so Claude Code's native Agent tool can * resolve the role by its frontmatter `name` (e.g. `ta`). The frontmatter MUST be the very first * bytes (Claude requires `---` at line 1); the managed-block markers live in the body, so they do * not disturb YAML parsing. `model` is resolved from the profile→phase→tier matrix at the default * `m` bucket (omitted defensively if the resolver returns undefined). Skills are referenced by * name, never inlined (mirrors opencode's stub body). */ export declare function generateClaudeAgentStub(profile: Profile, skillRefs: SkillReference[], version: string): string;