import type { SubagentInfo } from '../types'; import type { IAgent } from '../agents/IAgent'; /** * Discovers subagent definitions in `.ruler/agents/`. * Each `.md` file is parsed for YAML frontmatter (name, description, …). * Files that fail validation are dropped from the returned list and * reported via warnings. */ export declare function discoverSubagents(projectRoot: string): Promise<{ subagents: SubagentInfo[]; warnings: string[]; }>; type SubagentTarget = 'claude' | 'cursor' | 'codex' | 'copilot'; /** * Returns which native subagent targets are reachable through the supplied * agent list. An agent only contributes to a target when it implements * `supportsNativeSubagents()` returning true. */ export declare function getSelectedSubagentTargets(agents: IAgent[]): Set; /** * Returns absolute paths that subagent propagation may generate, for the * supplied agents, used for `.gitignore` integration. */ export declare function getSubagentsGitignorePaths(projectRoot: string, agents: IAgent[]): Promise; /** * Test-only hook to reset the once-per-process experimental warning state. */ export declare function _resetExperimentalWarningForTests(): void; interface PropagateOptions { dryRun: boolean; verbose?: boolean; } export declare function propagateSubagentsForClaude(projectRoot: string, subagents: SubagentInfo[], options: PropagateOptions): Promise; export declare function propagateSubagentsForCursor(projectRoot: string, subagents: SubagentInfo[], options: PropagateOptions): Promise; export declare function propagateSubagentsForCodex(projectRoot: string, subagents: SubagentInfo[], options: PropagateOptions): Promise; export declare function propagateSubagentsForCopilot(projectRoot: string, subagents: SubagentInfo[], options: PropagateOptions): Promise; export declare function propagateSubagents(projectRoot: string, agents: IAgent[], subagentsEnabled: boolean, cleanupOrphaned: boolean, verbose: boolean, dryRun: boolean): Promise; export {};