/**
 * CreateCustomAgentUseCase
 *
 * Creates a brand-new custom agent type the user can attach prompt and
 * graph overrides to. Optionally seeds the first prompt slot so the agent
 * is immediately useful in the editor.
 *
 * Rejects names that collide with built-in agent types — built-ins live
 * in code and must not be shadowed.
 */
import type { ICustomAgentRepository } from '../../ports/output/repositories/custom-agent-repository.interface.js';
import type { IAgentPromptOverrideRepository } from '../../ports/output/repositories/agent-prompt-override-repository.interface.js';
import type { CustomAgent, AgentPromptOverride } from '../../../domain/generated/output.js';
export interface CreateCustomAgentInput {
    agentType: string;
    name: string;
    description: string;
    /**
     * Optional first prompt slot to seed. The user can add more from the
     * agent editor afterwards. The slot id must match
     * /^[a-z][a-z0-9-_.]{0,63}$/.
     */
    initialPrompt?: {
        promptId: string;
        body: string;
    };
    /** Author of the new agent; defaults to 'user'. */
    createdBy?: string;
}
export interface CreateCustomAgentResult {
    agent: CustomAgent;
    initialPromptOverride?: AgentPromptOverride;
}
export declare class CreateCustomAgentUseCase {
    private readonly agents;
    private readonly overrides;
    constructor(agents: ICustomAgentRepository, overrides: IAgentPromptOverrideRepository);
    execute(input: CreateCustomAgentInput): Promise<CreateCustomAgentResult>;
}
//# sourceMappingURL=create-custom-agent.use-case.d.ts.map