import type { ICustomAgentRepository } from '../../ports/output/repositories/custom-agent-repository.interface.js';
import type { CustomAgent, AgentPromptOverride } from '../../../domain/generated/output.js';
import { CreateCustomAgentUseCase } from '../agents/create-custom-agent.use-case.js';
import { UpsertAgentPromptOverrideUseCase } from '../agents/upsert-agent-prompt-override.use-case.js';
/** Stable agent type identifier — used everywhere the agent is referenced. */
export declare const CONTRIBUTOR_ONBOARDING_AGENT_TYPE = "contributor-onboarding";
/** Prompt-slot id for the system prompt body. */
export declare const CONTRIBUTOR_ONBOARDING_SYSTEM_PROMPT_ID = "system";
/** Prompt-slot id for the human-readable output schema reference. */
export declare const CONTRIBUTOR_ONBOARDING_OUTPUT_SCHEMA_PROMPT_ID = "output-schema";
/**
 * Read-only tool surface granted to the contributor-onboarding agent (FR-35).
 *
 * Excludes every write-capable tool (Bash, Write, Edit, NotebookEdit,
 * TodoWrite) and every Shep write port. The agent inspects issue payloads
 * and existing repo content; mutations happen elsewhere through use cases
 * that route writes through the supervisor approval gate.
 */
export declare const CONTRIBUTOR_ONBOARDING_READ_ONLY_TOOLS: readonly string[];
export interface RegisterContributorOnboardingAgentInput {
    /** System prompt body (loaded from `prompts/contributor-onboarding/system.md`). */
    systemPromptBody: string;
    /** Output-schema reference body (loaded from `prompts/contributor-onboarding/output-schema.md`). */
    outputSchemaBody: string;
    /** Author of the registration; defaults to `'shep'`. */
    createdBy?: string;
}
export interface RegisterContributorOnboardingAgentResult {
    agent: CustomAgent;
    systemPrompt: AgentPromptOverride;
    outputSchema: AgentPromptOverride;
    /** True when this call created the agent (vs. updating prompts on an existing one). */
    created: boolean;
    /** Read-only tool surface the agent is invoked with (FR-35). */
    allowedTools: readonly string[];
}
export declare class RegisterContributorOnboardingAgentUseCase {
    private readonly agents;
    private readonly createAgent;
    private readonly upsertPrompt;
    constructor(agents: ICustomAgentRepository, createAgent: CreateCustomAgentUseCase, upsertPrompt: UpsertAgentPromptOverrideUseCase);
    execute(input: RegisterContributorOnboardingAgentInput): Promise<RegisterContributorOnboardingAgentResult>;
}
//# sourceMappingURL=register-contributor-onboarding-agent.use-case.d.ts.map