import type { HelperTaskType } from './modelRouting';
export type AgentRole = 'researcher' | 'developer' | 'qa' | 'writer' | 'architect' | 'security';
export interface AgentDefinition {
    /** Stable id used by callers — matches the file basename without extension. */
    id: string;
    name: string;
    description: string;
    role?: AgentRole | string;
    /** Optional preferred model. */
    model?: string;
    /** Optional helper preset for routing decisions. */
    preset?: HelperTaskType;
    /** Optional explicit max-turns budget. */
    maxTurns?: number;
    /** Personality / tone hints. */
    personality?: string;
    /** Goal description. */
    goal?: string;
    /** Notable strengths. */
    strengths?: string[];
    /** Tool-name allowlist. When set, the subagent only sees these tools. */
    allowedTools?: string[];
    /** System prompt — the body of the markdown file (frontmatter stripped). */
    systemPrompt: string;
    /** True unless explicitly disabled in frontmatter. */
    enabled: boolean;
    /** Path the definition was loaded from. */
    filePath: string;
}
export interface AgentLoadDiagnostic {
    id: string;
    filePath: string;
    reason: 'missing-frontmatter' | 'unreadable-file';
    message: string;
}
export interface AgentDirectoryScan {
    agents: AgentDefinition[];
    diagnostics: AgentLoadDiagnostic[];
}
export declare const BUILTIN_AGENT_ROLES: AgentDefinition[];
export declare function loadAgentDefinitions(projectDir: string): Promise<AgentDefinition[]>;
export declare function scanAgentDefinitions(projectDir: string): Promise<AgentDirectoryScan>;
export declare function parseAgentFile(content: string, filePath: string, fallbackId?: string): AgentDefinition | null;
export declare function resolveAgentDefinition(agentId: string, customAgents: AgentDefinition[]): AgentDefinition | undefined;
export interface CreateCustomAgentInput {
    id: string;
    name: string;
    description: string;
    role?: string;
    model?: string;
    preset?: HelperTaskType;
    personality?: string;
    goal?: string;
    systemPrompt: string;
    allowedTools?: string[];
}
export declare function writeCustomAgent(projectDir: string, input: CreateCustomAgentInput): Promise<string>;
//# sourceMappingURL=agentLoader.d.ts.map