/**
 * AgentController definition discovery, validation, and loading.
 *
 * User-defined subagents are markdown files with YAML frontmatter containing
 * agent configuration (name, description, tools, model, thinkingLevel, etc.).
 * The markdown body becomes the system prompt.
 *
 * Discovered from user dir (~/.shortcut/agent/agents/), project dir
 * (<cwd>/.shortcut/agents/), and explicit paths. Validates names (kebab-case),
 * descriptions, tool arrays, and thinking levels per the agent definition spec.
 */
import type { AgentDefinition } from '../agent-definition.js';
import type { ResourceDiagnostic } from './diagnostics.js';
/** Built-in agent names that user agents must not collide with. */
export declare const BUILT_IN_AGENT_NAMES: readonly ["clone", "document_reader", "general", "verification"];
export declare const AGENT_SOURCE_PRECEDENCE: readonly ["user", "project", "explicit"];
export type AgentSource = (typeof AGENT_SOURCE_PRECEDENCE)[number];
export interface LoadAgentsResult {
    agents: AgentDefinition[];
    diagnostics: ResourceDiagnostic[];
}
export interface LoadAgentsFromDirOptions {
    /** Directory to scan for agent definition files */
    dir: string;
}
export interface LoadAgentsOptions {
    /** Working directory for project-local agents. Default: process.cwd() */
    cwd?: string;
    /** AgentController config directory for user agents. Default: ~/.shortcut/agent */
    agentDir?: string;
    /** Explicit agent paths (files or directories) */
    agentPaths?: string[];
    /** Include default agent directories. Default: true */
    includeDefaults?: boolean;
}
/** Public API — returns AgentDefinition[] without internal filePath tracking. */
export declare function loadAgentsFromDir(options: LoadAgentsFromDirOptions): LoadAgentsResult;
/**
 * Load agent definitions from all configured locations.
 *
 * Discovery order (first-loaded wins on name collision):
 *   1. User agents:    <agentDir>/agents/
 *   2. Project agents: <cwd>/.shortcut/agents/
 *   3. Explicit agentPaths (files or directories)
 */
export declare function loadAgents(options?: LoadAgentsOptions): LoadAgentsResult;
//# sourceMappingURL=agents.d.ts.map